将varchar转换为datetime

时间:2012-02-03 06:52:17

标签: sql-server 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.

4 个答案:

答案 0 :(得分:3)

您使用dd / mm / yyyy格式的日期样式,请改用样式120:

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

答案 1 :(得分:0)

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

答案 2 :(得分: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

答案 3 :(得分:0)

如果您使用的是样式103,则应使用英式法语日期格式。

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

请参阅the docs for details