将NVARCHAR转换为货币价值

时间:2010-12-15 09:06:49

标签: sql sql-server sql-server-2005 sql-server-2008

我正在尝试使用MsSQL将NVARCHAR值转换为货币值。

我知道我可以使用类似的东西:

SELECT CONVERT(money, ValueColumn) FROM SomeTable

但问题是当我有一个值4352,50,并且我调用convert方法时,该值变为435250,00

我错过了什么?我也试过CONVERT(money,ValueColumn,2)但没有任何成功。

提前致谢!

5 个答案:

答案 0 :(得分:2)

SELECT CONVERT(money, REPLACE('4352,50', ',', '.'))

答案 1 :(得分:2)

当你在工作时, - as-decimal-separator使用:

SELECT CONVERT(money, REPLACE(ValueColumn, ',', '.'))

答案 2 :(得分:1)

尝试

DECLARE @ValueColumn NVARCHAR(20)

SELECT @ValueColumn = '4352.50'

SELECT CONVERT(money, @ValueColumn) 

VS

DECLARE @ValueColumn NVARCHAR(20)

SELECT @ValueColumn = '4352,50'

SELECT CONVERT(money, @ValueColumn) 

逗号不会被解释为小数点。

答案 3 :(得分:0)

这有点像黑客,但如果你的其他数据是相同的格式

e.g numbers , numbers ,

Declare @Value nvarchar(50)

Set @Value = '4352,50,'

Select Convert(Money, Substring(@Value, 0, Charindex(',',@value)) + '.' + Substring(@Value, Charindex(',',@Value)+1, 2))

答案 4 :(得分:0)

选择TRY_PARSE('12 .345,67'AS Money USING'pt-BR')