проблема преобразования даты и времени на сервере sql - PullRequest
0 голосов
/ 04 января 2012

, если я пытаюсь привести дату к дате, например, select cast('12/01/2010' as datetime), то это работает

, но если я пытаюсь привести как select cast('22/01/2010' as datetime), то это дает ошибку.

снова, если я пытаюсь привести строку к дате / времени, как select cast('2010/12/01' as datetime), тогда это работает, но если я пытаюсь привести как select cast('2010/25/01' as datetime), то это дает ошибку.Мое требование заключается в любом способе ввода даты пользователем, который должен быть успешно преобразован в datetime.подскажите пожалуйста лучшее решение

Ответы [ 2 ]

1 голос
/ 04 января 2012

Я рекомендую вам использовать фиксированный формат '20111231'.Вам не нужно использовать приведение, преобразование или подобную команду.

1 голос
/ 04 января 2012

В вашем случае сервер sql предполагает, что формат даты id mm / dd / yyyy - формат США,

вы хотите использовать французский формат, поэтому вместо этого используйте convert

select CONVERT(DATETIME, '12/01/2010', 103)

Вы получите ошибку, потому что такого номера месяца нет - 22 * ​​1006 *

Лучшее решение при передаче даты и времени в виде строки - использовать короткий (без часового пояса) формат ISO:

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