问题描述
向mysql数据库创建表,日期字段不能为空,设置日期为
全0
格式时报1067
错误
根本原因
mysql不允许日期格式为
全0
查询当前数据库的SQL_MODE:
SELECT @@sql_mode;
当前数据库的SQL_MODE : ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
可以看到NO_ZERO_IN_DATE,NO_ZERO_DATE是DATE不能全部为0的原因
解决方法
不重启mysql办法:可以看到NO_ZERO_IN_DATE,NO_ZERO_DATE是DATE不能全部为0的原因,所以把模式中的NO_ZERO_IN_DATE,NO_ZERO_DATE去掉就可以了
SET sql_mode=(SELECT REPLACE(@@sql_mode,'NO_ZERO_IN_DATE,NO_ZERO_DATE',''));