2012-02-03 9 views
0

я пытаюсь преобразовать следующую дату VARCHAR в формате даты и времени, но он не работаетПреобразовать 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 занимает 14 в 2010-04-14, чтобы быть месяцем. – Mithrandir

ответ

2

Вы используете формат даты для формата дд/мм/гггг, использовать стиль 120 вместо:

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

Вы пробовали бросание , as "select cast ('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

0

Если вы используете стиль 103, вам следует использовать форматирование британской французской даты.

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

См. the docs for details.

Смежные вопросы