MySql datetime: выдает ошибку для даты в DateTime :: DATE_ATOM - PullRequest
0 голосов
/ 22 мая 2018

Я получил MySql 5.7 БД на хостинге.БД содержит таблицу со столбцом даты и времени.например:

CREATE TABLE test_date (
  `date` datetime NOT NULL
)

В приложении PHP есть некоторая дата, которую мы должны сохранить в столбце datetime.Для достижения этой даты форматируется с использованием формата DateTime :: DATE_ATOM.PHP-приложение вставляет запись в эту таблицу с использованием некоторого фреймворка (это не важно), поэтому, наконец, запрос INSERT выглядит следующим образом:

INSERT INTO `test_date`(`date`) VALUES ('2018-05-22T12:33:16-03:00')

, но MySql выдает ошибку:

#1292 - Incorrect datetime value: '2018-05-22T12:33:16-03:00' for column 'date' at row 1

если я удаляю смещение часового пояса из строки ( -03: 00 ), вставка успешно завершена.

У меня установлено несколько экземпляров MySql 5.6 на локальной виртуальной машине и в разных удаленных центрах обработки данных.но я никогда не сталкивался с этой проблемой: MySql всегда работал правильно с датой и временем, отформатированным с использованием DateTime :: DATE_ATOM.

Я копал Google, но не нашел каких-либо конкретных изменений в MySql 5.7, связанных с datetime.

Не могли бы вы указать мне, почему строка DateTime :: DATE_ATOM отклонена MySql 5.7 или содержит какие-либо указатели?

Обновление: похоже, что основная причина этой проблемы отсутствует NO_ENGINE_SUBSTITUTION sqlMode (ref * 1022)* MYSQL неверный формат DATETIME ).Похоже, он установлен по умолчанию на большинстве установок (или администраторы его устанавливают), но не на моем хостинге.

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