Конвертировать varchar в datetime в SQL Server - PullRequest
61 голосов
/ 02 октября 2009

Как преобразовать строку формата mmddyyyy в datetime в SQL Server 2008?

Мой целевой столбец в DateTime

Я пытался использовать Convert и большинство значений стиля Date, однако я получаю сообщение об ошибке:

'Преобразование типа данных varchar в тип данных datetime привело к значению вне допустимого диапазона.'

Ответы [ 13 ]

0 голосов
/ 17 мая 2012

Это кажется самым простым способом ..

SELECT REPLACE(CONVERT(CHAR(10), GETDATE(), 110),'-','')
0 голосов
/ 17 февраля 2011

Основная причина этой проблемы может быть в региональных настройках - БД ожидает ГГГГ-ММ-ДД, пока приложение отправляет, например, ДД-ММ-ГГГГ (русский язык), как это было в моем случае. Все, что я сделал - изменил формат локали с русского на английский (США) и вуаля.

0 голосов
/ 02 октября 2009

Я думаю, что CONVERT - лучший выбор, поскольку вы можете включить стиль (формат даты), поэтому по умолчанию в США будет 110, что равно мм-дд-гггг.

...