我的金额列
中有这样的值323547.23700
12345643.34222
我想以这种格式转换
$323,547.24
$12,345,643.34
我正在使用此
CHAR(36)+ CONVERT(VARCHAR,@金额,1)
但这并没有给我我想要的东西
这可能会暗示我正在做什么
DECLARE @amount numeric(30,5)
SET @amount = 323547.23700
DECLARE @amount1 numeric(30,5)
SET @amount1 =12345643.34222
SELECT [USD Amount]= CHAR(36)+CONVERT(VARCHAR,@amount,1)
答案 0 :(得分:1)
正如Ademar指出的那样,你错过了varchar列的显式长度,这就是诀窍:
SELECT [USD Amount]= CHAR(36)+CONVERT(VARCHAR(30),@amount,1)
最后1
应该为您提供所需的小数点及其值。
答案 1 :(得分:1)
我们可以先将@amount转换为货币数据类型。然后转换为varchar bt,将样式指定为1。
DECLARE @amount numeric(30,5) SET @amount = 323547.23700 DECLARE @ amount1 numeric(30,5) SET @ amount1 = 12345643.34222
选择CHAR(36)+ CONVERT(varchar(20),CAST(@amount as money),1) 选择CHAR(36)+ CONVERT(varchar(20),CAST(@ amount1作为钱),1)