无法在SQL Server 2000中将char转换为money

时间:2015-04-24 09:39:17

标签: sql sql-server sql-server-2000

当我执行以下查询时

floor(Convert(money, @rawMoney) / cc.USDConversionRate)

我总是收到此错误,我正在使用SQL Server 2000

但如果我使用

 floor( Convert(money,substring(23,10)) / cc.USDConversionRate) 

然后它不会给出这个错误

3 个答案:

答案 0 :(得分:0)

试试这个

select (cast(@rawMoney as money)) from #YourTable

答案 1 :(得分:0)

只有一组有限的非数字符号可以传递给money类型变量,例如$。可以找到整个列表on MSDN

检查原始变量值是否符合此标准 - 如果不符合,则表示错误。 例如如果直接将原始变量传递给convert,则以下内容不起作用:

declare @rawMoney varchar(10) = 'USD 123.45'
select Convert(money,substring(@rawMoney,5,10))

答案 2 :(得分:0)

试试这个:

SELECT CAST(@rawMoney AS MONEY)

所以它可能就像

floor( CAST(@rawMoney AS MONEY) / cc.USDConversionRate)