У меня есть столбец дат в формате varchar (50), записанный как «дд/мм/гггг», мне нужно преобразовать его в формат datetime2, однако, когда он запускается, он предполагает, что формат «мм/дд/гггг» и преобразуется соответственно, выдает ошибку, когда поле дня превышает 12. Как мне заставить его правильно извлекать данные?
e.g.
03/04/2017 00:00:00
03/04/2017 00:00:00
15/06/2017 00:00:00
15/06/2017 00:00:00
17/05/2017 00:00:00
с последними 3 ошибками броска.
Текущая команда:
select case when try_convert(datetime2,[Date]) is not null
then cast([Date]as datetime2)
else null
end, [Date]
from [Source1]
Результаты:
2017-03-04 00:00:00.0000000 03/04/2017 00:00:00
2017-03-04 00:00:00.0000000 03/04/2017 00:00:00
NULL 15/06/2017 00:00:00
NULL 15/06/2017 00:00:00
NULL 17/05/2017 00:00:00
dd/mm
, а неmm/dd
? А04/07
? Единственное решение — заменить этот столбец соответствующим типом даты. В противном случае вам всегда придется иметь дело с ошибками преобразования или, что еще хуже, с неправильными датами. - person Panagiotis Kanavos   schedule 24.07.2018