MySql datetime:在DateTime :: DATE_ATOM中抛出日期错误

时间:2018-05-22 19:12:41

标签: php mysql datetime

我在托管上获得了MySql 5.7 DB。 DB包含具有datetime列的表。例如:

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 ),则插入成功完成。

我在本地VM和不同的远程数据中心安装了多个MySql 5.6实例,但我从未遇到过这个问题:MySql始终使用DateTime :: DATE_ATOM格式化日期时正常工作。

我挖掘了Google,但没有发现MySql 5.7中与datetime相关的任何具体更改。

你能否指出为什么DateS :: DATE_ATOM字符串被MySql 5.7拒绝或提供任何指针?

更新:看起来错过了这个问题的根本原因NO_ENGINE_SUBSTITUTION sqlMode(ref MYSQL incorrect DATETIME format)。看起来它默认设置在大多数安装(或管理员正在设置),但不在我的主机上。

0 个答案:

没有答案