当我执行以下查询时
floor(Convert(money, @rawMoney) / cc.USDConversionRate)
我总是收到此错误,我正在使用SQL Server 2000
但如果我使用
floor( Convert(money,substring(23,10)) / cc.USDConversionRate)
然后它不会给出这个错误
答案 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)