2012-02-03 181 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