Удалите конечные нули из десятичного числа в SQL Server

У меня есть столбец DECIMAL(9,6) т.е. это поддерживает значения как 999,123456.

Но когда я вставляю данные как 123,4567, это становится 123,456700

Как удалить те нули?

75
задан Espo 30 May 2010 в 17:59
поделиться

1 ответ

A decimal(9,6) хранит 6 цифр справа от запятой. Отображать или нет нули в конце числа - это решение о форматировании, обычно принимаемое на стороне клиента.

Но поскольку SSMS форматирует float без нулей в конце, вы можете удалить нули в конце, приведя decimal к float:

select 
    cast(123.4567 as DECIMAL(9,6))
,   cast(cast(123.4567 as DECIMAL(9,6)) as float)

prints:

123.456700  123,4567

(Мой десятичный разделитель - запятая, но SSMS форматирует десятичную дробь с точкой. Очевидно, это известная проблема.)

.
133
ответ дан 24 November 2019 в 11:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: