Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS SQL Server > Error converting data type nvarchar to numeric


Автор: MadCoder 15.9.2008, 10:13
Помогите сконвертировать nvarchar(max) в numeric(12,2).
Пишу код:
Код

select cast(DEBT_PRINCIPAL as numeric(12,2)) from iData where IsNumeric(DEBT_PRINCIPAL)=1

Выдает ошибку:
Error converting data type nvarchar to numeric.

Когда конвертирую в int:
Код

select cast(DEBT_PRINCIPAL as int) from iData where IsNumeric(DEBT_PRINCIPAL)=1

выдает следующее:
Conversion failed when converting the nvarchar value '1595,18' to data type int.

Все значения таблицы ненулевые (not Null) и по идее числовые (IsNumeric для всех выдает 1).

Значения следующие:
1595,18
14330,94
3200
и т.д.

Автор: MadCoder 15.9.2008, 12:43
Решил проблему самостоятельно. Оказывается, MS SQL Server не считает запятую разделителем. Заменив запятую на точку, сконвертировал все данные успешно:
Код

SELECT CAST(REPLACE(DEBT_PRINCIPAL,',','.') as numeric(18,2)) from iData where IsNumeric(DEBT_PRINCIPAL)=1

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)