У меня проблема с преобразованием дат в SQL Server 2008
Значение, которое я преобразовываю, выглядит следующим образом: 30-NOV-44 08.00.00.000000000
Результат, который я получаю, выглядит так: 2044-11-30 00:00:00.000
Код, который я использую, выглядит следующим образом:
SELECT TOP 1000 [USER_ID]
,CONVERT(datetime,SUBSTRING([DATEOFBIRTH],0,11),112) AS ConvertedDate
,[DATEOFBIRTH]
FROM [IAM_Perf].[dbo].[01_Data]
WHERE DATEOFBIRTH IS NOT NULL
Какой бы параметр я использовал в функции CONVERT, я возвращаю тот же формат, и многие даты конвертируются в будущее??!
Результаты меняются, когда я переключаюсь между датой и датой в первом аргументе CONVERT, но это не влияет на неверные результаты.
Я использую функцию подстроки, потому что в противном случаеон не преобразует значение и выдает эту ошибку:
Сообщение 241, Уровень 16, Состояние 1, Строка 1 Преобразование не удалось при преобразовании даты и / или времени из строки символов.
Я не уверен, как с этим бороться, я не могу гарантировать, что формат всегда останется прежним, иначе я просто переформатировал бы его вручную, используя некоторый T-SQL
У кого-нибудь есть какие-нибудь идеи?
Спасибо,
Мэтт