Я пытаюсь взять дату, содержащуюся в varchar, чтобы сравнить ее с getdate() в предложении where. Переменная VARCHAR всегда выглядит следующим образом:Подстрока SQL Server на дату, где caluse
Последний визит: MM/DD/YY
Некоторые образцы данных:
Last Seen: 07/12/16
Last Seen: 08/01/16
Last Seen: 07/22/16
NULL
NULL
NULL
NULL
Last Seen: 07/28/16
Преобразование VARCHAR в DateTime и найти разницу дней, как ниже работ:
datediff(day,CAST(substring(CA_NOTE, 12, 8) as datetime), getdate()) as dayspassed
Проблема в том, что когда я придерживаюсь этой кодировки в where, чтобы сравнить дату с getdate(), я продолжаю получать ту же ошибку.
where datediff(day,CAST(substring(CA_NOTE, 12, 8) as datetime), getdate()) > 90
Msg 241, Level 16, State 1, Line 3 Конверсия удалось при преобразовании даты и/или времени из строки символов.
Я работаю под управлением SQL Server 2014 Management Studio.
ред принимать во внимание комментарии
destination-data «s предложение использовать TRY_PARSE работал! Всем спасибо.
Можете ли вы дать нам некоторые данные образца? – GuidoG
Благодарим вас за комментарии. dateiff (день, CAST (подстрока (CA_NOTE, 12, 8) в качестве даты и времени), getdate())> 90 дает такое же сообщение об ошибке, что и раньше. – Adam
... что означает, что у вас сейчас другой вопрос. Эта новая версия * выглядит * хорошо, поэтому я вернусь к @GuidoG и его просьбе, чтобы показать некоторые примеры данных, с которыми мы можем работать. –