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

Cannot convert char to money in SQL Server 2000

当我执行以下查询时

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

我总是遇到这个错误,我正在使用 SQL Server 2000

但如果我使用

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

那就不会报这个错了

试试这个

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

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

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

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

试试这个:

SELECT CAST(@rawMoney AS MONEY)

所以它可能像

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