SELECT 'R$ '+convert(varchar(50), CAST(998547 as money), -1) MONEYVALUE
Выведет: R$ 998,547.00
В Бразилии право является: R$ 998.547,00
Как я могу вывести правый формат?
SELECT 'R$ '+convert(varchar(50), CAST(998547 as money), -1) MONEYVALUE
Выведет: R$ 998,547.00
В Бразилии право является: R$ 998.547,00
Как я могу вывести правый формат?
Вы должны использовать формат валюты с использованием выбранной культуры параметром для SQL Server 2012.
Как это:
select
'R$ ' + CONVERT(varchar(50), cast(MONEYVAL as MONEY), -1) MONEYVALUE -- Custom Format
, FORMAT(MONEYVAL, 'C', 'en-us') USA
, FORMAT(MONEYVAL, 'C', 'pt-br') Brazil
from ACCOUNT;
Посмотрите на формат валюты на official site
Вы можете увидеть пример на SQL Fiddle
Для Sever 2008 R2 у пользователя нет родной функции для форматирования валюты, но вы co uld загрузите некоторую библиотеку, например this, или напишите свой собственный формат или просто замените его, чтобы сделать его легким, но не таким уж случайным.
SELECT
'R$ ' + convert(varchar(50), CAST(moneyVal as money), -1) MONEYVALUE,
'RS ' + REPLACE(REPLACE(REPLACE(CONVERT(varchar(50), (CAST(moneyVal AS money)), -1), ',', ';'), '.', ','), ';', '.')
from Account
' FORMAT' не доступен в sql-server-2008-r2 – Khrys
не имеют дб сделать форматирование. введите свой db-выход '998547,00', затем выполните форматирование в своем клиентском коде. db никогда не должен беспокоиться о том, кто сидит за клавиатурой и каков их национальный формат. –
Или, если вам абсолютно необходимо, вы можете написать свой собственный UDF, который будет использовать строковые функции SQL, чтобы преобразовать тип данных денег в нужный формат строки. –
@Marc B, Хорошо, ты меня достал. – Khrys