Конвертировать varchar в datetime - PullRequest
0 голосов
/ 03 февраля 2012

Я пытаюсь преобразовать следующую дату 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 ]

3 голосов
/ 03 февраля 2012

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

select Convert(datetime, '2010-04-14',120) + 10 AS DocDueDate
from tblActionHeader AH
0 голосов
/ 03 февраля 2012

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

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

Подробнее см. документы .

0 голосов
/ 03 февраля 2012

например

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 голосов
/ 03 февраля 2012

Вы пробовали приведение типа «выберите приведение (« 2010-04-14 »в качестве даты и времени)»?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...