T sql转换字符串值作为货币格式不起作用

时间:2015-09-22 09:46:48

标签: sql-server currency

我的值为下面的字符串格式,

值:

-24,52

-22,74

-13,08

303,75

当我将上述字符串值转换为金钱时,所有值都会显示如下

-2452,00

-2274,00

-1308,00

30375,00

所有值都有更多" 0 "数字问题。如何将字符串值转换为精确的货币格式

4 个答案:

答案 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分隔符而不是十进制分隔符