文化与金钱SQL

Khr*_*rys 0 sql-server sql-server-2008-r2

这个:

SELECT 'R$ '+convert(varchar(50), CAST(998547 as money), -1) MONEYVALUE

将输出: R$ 998,547.00

在巴西,权利是: R$ 998.547,00

如何输出正确的格式?

And*_*aes 6

您需要使用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;
Run Code Online (Sandbox Code Playgroud)

官方网站上查找货币格式

你可以在SQL Fiddle上看到这个例子

对于Sever的2008 R2这么想的有一个本地函数来格式化货币,但你可以下载一些库像这样或写自己的格式功能或简单的只是用替换,使之很容易,但并非如此fency.

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
Run Code Online (Sandbox Code Playgroud)