Преобразование float в varchar с правильным десятичным разделителем

Привет, я живу в Австрии, и мы используем , в качестве десятичного разделителя.

Кажется, невозможно преобразовать float в varchar с правильным разделителем в соответствии с настройкой языка/сопоставления?

Это ошибка?

set language german --makes no difference in this case
declare @f float = 4.5
select @f --output in my management studio is 4,5 
          --according to the regional os settings this is correct

select convert(varchar,@f) -- output: 4.5 not correct

одно решение, но не идеальное, я думаю

select replace(convert(varchar,@f),'.',',')

person Christoph Staudinger    schedule 16.02.2012    source источник


Ответы (1)


  • SSMS форматирует тип float на основе ваших regional настроек.
  • Параметр языка SQL Engine не влияет на используемые разделители.

Правильно, надо оставить числа как числа и отформатировать в клиенте.
Это то, что SSMS делает для вас

Также см. SQL-сервер с немецкими региональными настройками

person gbn    schedule 16.02.2012
comment
Это правда, спасибо, но вы можете конвертировать DateTime с разными стилями, почему бы не использовать десятичный разделитель? Так что я все еще думаю, что это ошибка (или отсутствующая функция) :) - person Christoph Staudinger; 16.02.2012