我的值为下面的字符串格式,
值:
-24,52
-22,74
-13,08
303,75
当我将上述字符串值转换为金钱时,所有值都会显示如下
-2452,00
-2274,00
-1308,00
30375,00
所有值都有更多" 0 "数字问题。如何将字符串值转换为精确的货币格式?
答案 0 :(得分:1)
您可以尝试删除00,如下所示:
select replace(convert(varchar,cast(yourNum as money),1), ',00','')
或者在SQL Server 2012中,您可以尝试使用FORMAT
SELECT Format(24.01, '##,##0')
答案 1 :(得分:1)
select cast('-24,01' as money) / 100
对于除了视觉呈现以外的任何内容,avoid MONEY entirely都是个好主意。
答案 2 :(得分:1)
尝试此查询
WITH t
AS
(
SELECT -24.52 AS [val]
UNION
SELECT -22.74
UNION
SELECT -13.08
UNION
SELECT 303.75
)
SELECT CAST( ABS(t.val) AS decimal(10,2)) -- or decimal(10,0)
FROM t
答案 3 :(得分:1)
我试图用一个点替换逗号并且很幸运:
hvcC
原因是,sql server将','视为thousend分隔符而不是十进制分隔符