2012-02-03 178 views
0

我试图以下VARCHAR日期转换为datetime格式,但它不工作将varchar转换为datetime

select Convert(datetime, '2010-04-14',103)+10 AS DocDueDate 
from tblActionHeader AH 

,我发现了错误

Msg 242, Level 16, State 3, Line 1 
The conversion of a varchar data type to a datetime data type resulted in an out-of-range value. 
+0

SQL Server将2010-04-14中的14作为月份。 – Mithrandir 2012-02-03 06:56:44

回答

2

您使用的日期样式的格式DD/MM/YYYY,使用的样式,而不是120:

select Convert(datetime, '2010-04-14',120) + 10 AS DocDueDate 
from tblActionHeader AH 
0

您是否尝试过铸造,如“选择演员('2010-04-14'作为日期时间)”?

0

例如

create table test2 (updatetime varchar(20)); 

insert into test2 values ('2010-9-12 10:33:5'); 

select updatetime from test2 where convert(datetime,updatetime,110)>'2010-9-12 
+0

样式110需要格式mm-dd-yy。 – Guffa 2012-02-03 06:57:13

0

如果你使用的样式103,你应该使用英式法语日期格式。

select DATEADD(Day, 10,Convert(datetime, '14/04/2010',103)) AS DocDueDate 

请参阅the docs for details