有没有一种简单的内置方法可以将格式为“$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.".
尝试将负值转换时,我假设是因为括号的原因。
有没有一种简单的内置方法可以将格式为“$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.".
这应该能解决问题
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)
PARSE
函数。 - mellamokb