У меня есть подзапрос, который преобразует текстовую колонку в дату и время. Так как это в текстовом формате, есть столбцы, которые содержат неверные данные. Я знаю, что первый ответ будет исправить данные, я полностью согласен с этим. У меня нет привилегий для этого, к сожалению, мне приходится иметь дело с этим.
ниже мой запрос
INNER JOIN TABLE XYZ
ON XYZ.COLOUMN1=YZX.COLOUMN2
LEFT JOIN ( SELECT ABC.stu_id
ABC.stu_name
CONVERT(DATETIME,LMN.startDate,111) STARTDATE
CONVERT(DATETIME,LMN.endDate,111) ENDDATE
FROM STUDENT ABC
INNER JOIN AN_STUDENT_TABLE LMN
ON ABC.stu_id=LMN.stu_id
WHERE ISDATE(startDate)=1
AND ISDATE(endDate)=1
GROUP BY ABC.stu_id,ABC.stu_name,STARTDATE,ENDDATE) DIN ON DIN.stu_id=LMNOP.stu_id
WHERE e.date BETWEEN DIN.STARTDATE AND DIN.ENDDATE
когда я сравниваю e.date с начальной и конечной датой, она не срабатывает, давая мне хорошо известную ошибку
"The conversion of a varchar data type to a datetime data type resulted in an out-of-range value."
что можно сделать, чтобы хотя бы пропустить те плохие записи данных, которые не могут быть преобразованы?
Я старался изо всех сил, чтобы понять это, но не получилось. Любая помощь / совет оценен!