Как преобразовать строку 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-й?
Ответы
Ответ 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)