Ошибка SQL при попытке конвертировать varchar в десятичную - PullRequest
0 голосов
/ 22 сентября 2018

Я пытаюсь выяснить, почему я получаю следующую ошибку.Почему он пытается преобразовать в целое число, когда я пытаюсь сказать ему преобразовать в десятичное число?

Преобразование не удалось при преобразовании значения varchar '938.00' в тип данных int.

Вот конец бизнеса.Если я отфильтрую период, он работает, но мне нужен этот период для импорта данных в Excel.

convert(decimal(9,2),'"+$WorkSheet.Range('D13').Text.replace("'","").replace(" ","").replace("$","").replace(",","").replace("-","")+"'+0)

Ответы [ 2 ]

0 голосов
/ 22 сентября 2018

Это то, что я придумал.Это выглядит грубо, но, кажется, работает.Тестирование будет продолжено.Еще раз спасибо.

convert(decimal(9,2), ISNULL(NULLIF('"+$WorkSheet.Range('D14').Text.replace("'","").replace(" ","").replace("$","").replace(",","").replace("-","")+"', ''),'0')),
0 голосов
/ 22 сентября 2018

Предположительно, потому что вы используете + 0, что означает, что + рассматривается как сложение, а не как конкатенация.Я думаю, что простое решение будет заменить:

replace('convert(decimal(9,2), @val)',
        '@val',
        $WorkSheet.Range('D13').Text.replace("'", "").replace(" ", "").replace("$", "").replace(",", "").replace("-", "")
       )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...