2015-01-21 4 views
0

Мне сложно преобразовать этот nvarchar в datetime. Вот формат 'DDMMYY'Преобразование nvarchar в datetime

declare @mydate nvarchar(50) = '211077' 

select convert(datetime,@mydate,103) 

Спасибо за вашу поддержку

+0

211077 является 21101977 или 21101877 или 21101277 ?? –

+0

211077 is 21101977 – Chris

ответ

0

Попробуйте это:

declare @mydate nvarchar(50) = '21-10-1977' 

select convert(datetime,@mydate,103) 
+1

Я не могу попробовать это. Все значения int he columns сделаны в этом формате 'ddmmyy' – Chris

+0

@ Крис - это даты больше 2000? и как они хранятся? – Whencesoever

+0

Нет такой даты 290799 за 29/07/1999 – Chris

1

попробовать это:

DECLARE @mydate NVARCHAR(50) = '211077' 

SELECT CONVERT(DATETIME, '19' + SUBSTRING(@mydate, 5, 2) + SUBSTRING(@mydate,3, 2) + LEFT(@mydate, 2), 103) 
+0

Спасибо. Хорошо работать тоже! – Chris

1

Вот решение для тех, кто получить ту же проблему:

declare @mydate nvarchar(50) = '211077' 
select @mydate, convert(datetime,stuff(stuff(@mydate,5,0,'.'),3,0,'.'), 3) 
1

Хорошо, вы можете попробовать это

DECLARE @mydate NVARCHAR(50) = '211077' 
SELECT CONVERT(DATETIME, LEFT(@mydate, 2) + '-' + SUBSTRING(@mydate, 3, 2) + '-19' + RIGHT(@mydate, 2), 103) 
Смежные вопросы