Я получил 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 ).Похоже, он установлен по умолчанию на большинстве установок (или администраторы его устанавливают), но не на моем хостинге.