我正在尝试使用MsSQL将NVARCHAR值转换为货币值。
我知道我可以使用类似的东西:
SELECT CONVERT(money, ValueColumn) FROM SomeTable
但问题是当我有一个值4352,50,并且我调用convert方法时,该值变为435250,00
我错过了什么?我也试过CONVERT(money,ValueColumn,2)但没有任何成功。
提前致谢!
答案 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')