在SQL Server中将字符串转换为Money值

时间:2012-05-14 20:05:06

标签: sql sql-server tsql casting ssis

是否有一种简单的内置方式将格式为“$ 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 个答案:

答案 0 :(得分:11)

这应该可以解决问题

SELECT   '$1,000.00'
        ,CAST('$1,000.00' AS MONEY)
        ,CAST(REPLACE(REPLACE('($1,000.00)', '(', '-'), ')','') AS MONEY)

SQL Fiddle Example

根据@ mellamokb的建议,如果你使用的是SQL 2012,你可以使用它:

SELECT PARSE('($1000.00)' AS MONEY)

SQL Fiddle Example