不同版本的mysql中对Date类型的默认值检查是不一样的,当使用到timestamp中设置默认值为0的格式时,由于不同的mysql中对数据类型中的检查规范不一样,所以导致不同mysql中可能支持的结果不同。
可以使用下面的查询语句可知:
SELECT @@GLOBAL.sql_mode; --设置全局的
SELECT @@SESSION.sql_mode; --设置此次会话中的
由于不同版本mysql或者sql_mode中的设置不同所查到的结果也会不同
需要修改时可以分为两种方式,第一种为sql语句的修改,第二种为配置文件的修改。
- 第一种
SET GLOBAL sql_mode = 'modes';
SET SESSION sql_mode = 'modes';
- 第二种
window下面:找到配置文件my.int文件后,修改成功后,重启mysql服务
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
linux下面:找到配置文件my.cnf,在ect文件下面,修改以同样的sql语句,同样重启服务
对于日期检查格式时,需要将sql_mode中的NO_ZERO_IN_DATE与NO_ZERO_DATE的检查去掉。
官方说明地址:
https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html