Подтвердить что ты не робот

Как преобразовать строку dd/mm/yyyy в datetime в SQL Server?

Я пробовал это

SELECT convert(datetime, '23/07/2009', 111)

но получил эту ошибку

The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.

Однако

SELECT convert(datetime, '07/23/2009', 111)

ОК, хотя

Как исправить 1-й?

4b9b3361

Ответ 1

Последний аргумент CONVERT похоже, определяет формат, используемый для разбора. Консультируйтесь с документами MSDN для КОНВЕРТА.

111 - то, что вы используете, это Япония yy/mm/dd.

Я думаю, что вы ищете 103, то есть dd/mm/yyyy.

Итак, вы должны попробовать:

 SELECT convert(datetime, '23/07/2009', 103)

Ответ 2

Try:

SELECT convert(datetime, '23/07/2009', 103)

это британский/французский стандарт.

Ответ 3

SELECT convert(varchar(10), '23/07/2009', 111)

Ответ 4

SQL Server по умолчанию использует формат даты mdy, и поэтому работает ниже:

SELECT convert(datetime, '07/23/2009', 111)

и это не работает:

SELECT convert(datetime, '23/07/2009', 111)

Я сам изо всех сил пытался создать один запрос, который может обрабатывать оба формата даты: mdy и dmy.

Однако вы должны быть в порядке с третьим форматом даты - ymd.

Ответ 5

SELECT convert(datetime, '23/07/2009', 103)