2015-01-21 217 views
0

我很难将nvarchar转换为datetime。 这里是格式 '日月年'将nvarchar转换为datetime

declare @mydate nvarchar(50) = '211077' 

select convert(datetime,@mydate,103) 

感谢您的支持

+0

211077为21101977或21101877或21101277? – 2015-01-21 10:40:07

+0

211077是21101977 – Chris 2015-01-21 10:45:20

回答

0

试试这个:

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

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

我不能试试这个。列中的所有值都以此格式生成'ddmmyy' – Chris 2015-01-21 10:39:22

+0

@Chris是大于2000的日期吗?他们如何储存? – Whencesoever 2015-01-21 10:44:42

+0

没有一些日期是这样的290799 29/07/1999 – Chris 2015-01-21 10:46:09

1

试试这个:

DECLARE @mydate NVARCHAR(50) = '211077' 

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

谢谢。工作也很好! – Chris 2015-01-21 10:51:32

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)