Sql server 文化与金钱
这:Sql server 文化与金钱,sql-server,sql-server-2008-r2,Sql Server,Sql Server 2008 R2,这: 选择'R$'+转换(varchar(50)、转换(998547作为货币)、-1)货币价值 将输出:R$998547.00 在巴西,右边是:R$998.547,00 如何输出正确的格式?您需要使用SQL Server 2012的选定区域性参数使用货币格式 像这样: select 'R$ ' + CONVERT(varchar(50), cast(MONEYVAL as MONEY), -1) MONEYVALUE -- Custom Format , FORMAT(MONEY
选择'R$'+转换(varchar(50)、转换(998547作为货币)、-1)货币价值
将输出:R$998547.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;
在下一页中查找货币格式
您可以在
对于Sever 2008 R2来说,它没有设置货币格式的本机函数,但您可以下载一些类似于库的函数,或者编写自己的格式函数,或者简单地使用replace使其变得简单,但不那么方便
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
不要让数据库进行格式化。让数据库输出
998547.00
,然后在客户端代码中进行格式化。db不必担心谁坐在键盘旁,他们的国家格式是什么。或者,如果你绝对必须这样做,你可以编写自己的自定义项,使用SQL字符串函数将货币数据类型转换为所需的字符串格式。@Marc B,好的,你明白了。@Khrys-尽管Marc B很有道理,我相信您所问问题的正确答案是Andrew在下面发布的,可能应该标记为正确。@dcary,这不是因为sql-server-2008-r2中没有FORMAT
选项FORMAT
在sql-server-2008-r2中不可用