Php MySql datetime:在datetime::date\u ATOM中引发日期错误

Php MySql datetime:在datetime::date\u ATOM中引发日期错误,php,mysql,datetime,Php,Mysql,Datetime,我在主机上得到了MySql 5.7DB。 DB包含带有datetime列的表。例如: CREATE TABLE test_date ( `date` datetime NOT NULL ) PHP应用程序中有一些日期,我们应该将其存储到datetime列中。为了实现该目的,使用DateTime::date\u ATOM格式格式化日期。 PHP应用程序正在使用某种框架将记录插入该表中(这并不重要),因此最终插入查询如下所示: INSERT INTO `test_date`(`date`) V

我在主机上得到了MySql 5.7DB。 DB包含带有datetime列的表。例如:

CREATE TABLE test_date (
  `date` datetime NOT NULL
)
PHP应用程序中有一些日期,我们应该将其存储到datetime列中。为了实现该目的,使用DateTime::date\u ATOM格式格式化日期。 PHP应用程序正在使用某种框架将记录插入该表中(这并不重要),因此最终插入查询如下所示:

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)中删除时区偏移,则插入成功完成

我在本地VM和不同的远程数据中心上安装了多个MySql 5.6实例,但我从未遇到过这个问题:MySql总是正确地使用datetime::DATE_ATOM格式化的datetime

我搜索了谷歌,但没有发现MySql 5.7中与datetime相关的任何具体变化

您能告诉我为什么MySql 5.7拒绝使用DateTime::DATE_ATOM字符串,或者提供任何指针吗

更新:看来此问题的根本原因是缺少无引擎替代模式(ref)。在大多数安装(或管理员正在设置)上,它似乎是默认设置的,但在我的主机上不是。

介绍了
DATETIME
文本的语法。我看不出有什么关于允许时区偏移的。我怀疑5.6只是忽略了这一点,而5.7变得更严格了,或者您设置了不同的SQL模式。