Как конвертировать 15000000,00 в 15 000 000 в SQL-сервере? - PullRequest
4 голосов
/ 11 марта 2010

В SQL-сервере имеется одно значение 15000000.00 с числовым типом данных.

Как я могу получить или преобразовать значение 15000000,00 в 15 000 000?

Ответы [ 5 ]

6 голосов
/ 11 марта 2010

Сервер базы данных - неподходящее место для этого. Локализация должна выполняться на уровне представления, а не в хранилище данных.

2 голосов
/ 11 марта 2010

Поскольку вы работаете с типом денег или хотите, чтобы результат был типом денег, это может быть просто:

SELECT CONVERT(VARCHAR, @money_val, 1) -- you may have to cast to money from int first

Проверьте эту ссылку для более глубокого обсуждения:

Вот выдержка:

Форматирование запятой доступно только для ДЕНЬГИ типы данных. Если хотите запятая INT, DECIMAL и т. д., вы должен привести его к ДЕНЬГАМ и сделать конвертировать с флагом стиля 1.

ОБЪЯВИТЬ @m DECIMAL (10,2) SELECT @m = '23456789,25'

ВЫБРАТЬ CONVERT (VARCHAR, @m, 1) AS DecimalValue, КОНВЕРТ (VARCHAR, CAST (@m КАК ДЕНЬГИ), 1) КАК MoneyValue / * DecimalValue
MoneyValue


23456789,25 23 456 789,25 * /

1 голос
/ 11 марта 2010

Я всегда с успехом использовал следующее

SELECT
  Convert(VARCHAR, Cast(100000.01 AS MONEY), 1) Amount

Результаты:
Сумма
-----------------------------
100,000.01

1 голос
/ 11 марта 2010

Вы не хотите сохранять свои числовые данные в форматах.Вы можете сделать это при выборе:

SELECT CONVERT(varchar(12), value, 1) AS formattedvalue FROM table

Последний 1 - это стиль конвертирования, который вставляет.и знаки (в зависимости от ваших локальных настроек и числового типа).

Если вы спросите меня, я бы даже не позволил серверу баз данных SQL беспокоиться об этом и отформатировал число в самом коде.

1 голос
/ 11 марта 2010

Это не конверсия. 15.000.000,00 (немецкое письмо) - строковое представление 15 миллионов. Десятичный тип данных хранит не строку, а значение.

Все строковые представления, которые вы видите, являются в основном визуализациями - в менеджере предприятия или в программном обеспечении в соответствии с настройками (локалью) при генерации строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...