Коллеги, просветите в отношении поведения оптимизатора!
Имеется MSSQL2008R2. Имеется некая таблица, в которой дата хранится в текстовом виде, dd.mm.yyyy, причем некоторые даты -
кривые (не даты, мусор, Null-ы и т.д.).
Не работает вот такой запрос:
Set Dateformat dmy;
Select 137, a.ID from (
select p.id, p.dr, p.DDEAD from dbo.PERSON p
Where IsDate(p.DR)=1 and IsDate(p.DDead)=1
) a
where not convert(date, a.DDead, 104) between convert(date, a.DR, 104) and GETDATE()
Сообщение 241, уровень 16, состояние 1, строка 2
Conversion failed when converting date and/or time from character string.
Причем внутренний запрос - нормально отрабатывает и возвращает пустой набор (ну, ничего не возвращает).
Смотрю как баран на новые ворота.
В чем проблема?