Ошибка 242 в SQL Server Management Studio Express

Почему, когда я пытаюсь вставить эту дату в значение "datetime", сообщение 242 сравнивается?

2012-11-16 00:00:00.000

Этой ошибки нет, если, например, я пытаюсь вставить:

2012-11-16 15:00:00.000

1 ответ

Решение

Вставьте это как '2012-11-16T00:00:00.000'

если вам не нужно время, вставьте его как

'20121116'

Это форматы ISO для даты / времени соответственно.
Как и во всех других форматах, возникают проблемы в зависимости от языка пользователя, на котором выполняется инструкция SQL.

Вы также можете получить такие проблемы с месяцами / днями, и это не всегда очевидно.

например, если вы анализируете строку как '01/01/2015', это всегда будет работать. Но когда вы доберетесь до '01/13/2015', вы сталкиваетесь с проблемами, потому что английский использует month/day/yearв то время как, например, немецкий использует day/month/yearи 13 недействительный месяц...

В вашем случае это как-то неверно истолковывает время, и это может привести к всевозможным странным ошибкам.

Другие вопросы по тегам