У меня есть таблица со столбцом varchar(25)
, которая содержит значение даты.Типичное значение - «11/04/2017».
Этот запрос возвращает 0 строк
select *
from myTable
where isdate(inputDate) = 0
Я пытаюсь найти максимум по этому, используя сортировку по дате.
Этот запрос возвращает ожидаемый результат
;with gooddates as
(
select
medcomfolder, PatientId, PatientBirthday, InputDate
from
myTable
where
isdate(inputDate) = 1
)
select max(convert(datetime, inputDate))
from gooddates
Этот запрос возвращает ошибку.
;with gooddates as
(
select
medcomfolder, PatientId, PatientBirthday, InputDate
from
dwhFuData
where
isdate(inputdate) = 1
)
select max(convert(date, inputdate))
from gooddates
Это возвращаемая ошибка
Сообщение 241, Уровень 16, Состояние 1, Строка 274
Ошибка преобразования при преобразовании даты и / или времени из строки символов
Разница между двумя запросами заключается в том, что первый конвертируется в dateTime, а второй - в дату.
На данный момент я могу двигаться вперед с параметром dateTime, но мне остается только подумать, что мне не хватает.
Я проверил, что нет встроенных пробелов, и у всех столбцов есть len(InputDate) = 10
(данные о времени НЕ включены)
Я выбрал отдельные значения, поместил их в Excel исделал функцию даты в каждой строке.Я надеялся получить # VALUE в 1 ряду.Все ряды работали.
Так что нет ничего глупого, как «02/31/2019».
Как может проходить преобразование dateTime, если преобразование простой даты не проходит?