2016-03-01 2 views
0

Когда я делаю следующее:SQL-запрос, отображающий float с запятой в качестве разделителя вместо "."

declare @x float = 1.5 
    select @x 

В результате отображаемая 1,5 вместо 1.5.

Но когда я print @x, он показывает правильный результат: 1.5".

Это происходит также при запросе таблицы с поплавковым полем.

Я использую sql server 2008 r2, сортировка сервера и базы данных - sql_latin1_cp1_cs_as.

Есть ли конфигурация для установки правильного разделителя при запросе полей поплавка? Я бы не хотел, чтобы у меня были литеры или замена во всех моих запросах.

ответ

2

Определенно не пытайтесь использовать REPLACE, чтобы обойти это. Проблемы с дисплеем должны обрабатываться на уровне дисплея, когда это возможно. Если у вас есть float, рассматривайте его как float, а не строку.

Настройки должны исходить из региональных настроек вашего компьютера. Я считаю, что есть ошибка, которая приводит к тому, что десятичные типы данных не используют этот параметр (всегда использует период для десятичной точки), но для float и money он должен использовать региональные настройки. Как установить их будет зависеть от вашей точной ОС, но если вы ищете в меню «Пуск» что-то вроде «изменить формат номера» или «региональные настройки», вы, должно быть, сможете его найти.

+0

Я запускаю Windows 7. Я смотрю в Control painel -> Region and Language -> Additional Settings -> Numbers -> Decimal Symbol -> изменено с "," на "." затем вернулся к SQL, и он отлично работал! – DuroForce