MySQL中的全局设置将空字符串解释为Date字段为NULL?

时间:2017-08-02 13:07:22

标签: mysql date datetime null

我有一些PHP和MySql代码在执行插入语句时给出了一个错误,该语句试图将“”放入可以为空的Date字段中。我相信代码在另一个环境中工作,因此我想知道环境是否可能不同,并且可以将空字符串放入MySql Date字段并将其解释为NULL。

我能够使用字符串“0000-00-00”插入我的环境,它确实在日期列中创建了一个NULL值,但是“”无效。

1 个答案:

答案 0 :(得分:2)

MySQL开发人员正在逐步收紧默认的SQL模式,以使MySQL对您提供的数据更加挑剔。较新版本的默认值比旧版本更严格。这就是为什么过去工作的东西不再起作用了。

在尝试将空字符串插入DATE列之前尝试发出此命令。它应该让MySQL停止抱怨。

set session sql_mode = 'ALLOW_INVALID_DATES';

阅读本文了解更多细节。 https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_allow_invalid_dates