是否有一种简单的内置方式将格式为“$ 1,000.00”和“($ 1,000.00)”的NVARCHAR转换为数值1000.00和-1000.00?
我正在尝试在SQL Server或SSIS中执行此操作。
施放到MONEY会给我错误
"Cannot convert a char value to money. The char value has incorrect syntax.".
当试图施放负值时,我假设由于括号。
答案 0 :(得分:11)
这应该可以解决问题
SELECT '$1,000.00'
,CAST('$1,000.00' AS MONEY)
,CAST(REPLACE(REPLACE('($1,000.00)', '(', '-'), ')','') AS MONEY)
根据@ mellamokb的建议,如果你使用的是SQL 2012,你可以使用它:
SELECT PARSE('($1000.00)' AS MONEY)