Я получаю эту ошибку в MS SSMS версии 17.6 в своем операторе SQL.
Conversion failed when converting the varchar value '????????' to data type int.
Мой запрос довольно длинный, и я не уверен, какой из них, если не все, вызывает ошибку, но некоторые из них читаются так.
+ISNULL(REPLACE(CONVERT(CHAR(8),PAT.BIRTH_DATE,112),'/',''),'????????') --field length 8;
+CAST('????????' AS CHAR(8))--as 'Total Costs';
and
+case when proc1.REF_BILL_CODE is null then '@@@@@@@@'
when proc1.px_date is null then '????????'
else REPLACE(CONVERT(VARCHAR(8),proc1.px_date, 112), '/', '????????') END
Сейчас я пробую процесс исключения.
Если вы говорите о дате, я пытаюсь удалить / из даты рождения, чтобы это были просто числа. То же самое с px_date.
Сколько еще запроса вам нужно? Могу сохранить и прикрепить.
Ясно, что вы добавляете результат isnull
к чему-то - и называете его total costs
- но что это за что-то - звучит как числовое значение, к которому вы пытаетесь добавить строку?
В этой части кода не должно быть ошибок преобразования. Вы уверены, что ошибка здесь? Не могли бы вы поделиться полным запросом.
Я почти уверен, что я не включил ни одно из этих утверждений. Сейчас он работает, немного медленно, но он работает.
Мне нужно добавить 520 #, а затем 371 пробел. Я считаю, что именно эти элементы приводят к сбою моего кода.
Что ж, учитывая общие затраты, им требуется 8 футов? если вы не можете предоставить реальную общую стоимость. У нас нет данных о стоимости, поэтому я должен ввести 8 '?' как это ????????. Таким образом, ISNULL не является частью поля, а просто "???????". Я считаю, что этот элемент работает правильно.
Думаю, теперь у меня это работает. Пожалуйста, не тратьте время на этот запрос.
Этого фрагмента недостаточно, чтобы сделать обоснованное предположение. И почему вы заменяете
/
на строку, которая уже является датой в формате ISO без разделителей?