将值从char转换为money时出错

时间:2013-12-24 08:49:14

标签: sql-server tsql

我有一个表tableA,其中包含数据类型为[Amount]的列varchar

它的值如下:

47980.89
333652.61
332388.84
374664.48
368715.26
371689.33
371689.33
368715.26
374664.48 

现在,当我运行查询时,它会成功运行,但每次都会提供不同的输出

SELECT  
   sum(convert(float, Amount))
FROM tableA   

当我尝试这个其他陈述时,我收到错误

  

无法将char值转换为money。 char值的语法不正确。

代码:

SELECT  
    sum(convert(money, Amount))
FROM tableA

我想要列[Amount]

的总和

2 个答案:

答案 0 :(得分:1)

这应该这样做:

select Sum(isnull(cast(amount as float),0)) from #t

或者你需要它是货币数据类型

select Sum(isnull(cast(amount as money),0)) from #t

fiddle demo

答案 1 :(得分:0)

尝试这样

SELECT SUM(CAST(Amount AS MONEY)) From TableA where ISNUMERIC(Amount)=1