Перевести NVARCHAR в денежное выражение - PullRequest
2 голосов
/ 15 декабря 2010

Я пытаюсь преобразовать значение NVARCHAR в денежное значение с помощью MsSQL.

Я знаю, что могу использовать что-то вроде:

SELECT CONVERT(money, ValueColumn) FROM SomeTable

Но проблема в том, что когда у меня есть значение 4352,50, и я вызываю метод convert, значение становится 435250,00

Чего мне не хватает? Я также попробовал CONVERT (деньги, ValueColumn, 2), но безуспешно.

Заранее спасибо!

Ответы [ 5 ]

2 голосов
/ 15 декабря 2010

Когда вы работаете, - в качестве десятичного разделителя используйте это:

SELECT CONVERT(money, REPLACE(ValueColumn, ',', '.'))
2 голосов
/ 15 декабря 2010

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

1 голос
/ 15 декабря 2010

Попробуйте

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) 

Запятая не интерпретируется как десятичная точка.

0 голосов
/ 03 августа 2015

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

0 голосов
/ 15 декабря 2010

Это что-то вроде хака, но если остальные ваши данные имеют тот же формат

например numbers , numbers ,

Declare @Value nvarchar(50)

Set @Value = '4352,50,'

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