Procedure execution failed1292 – Incorrect date value: ‘0000-00-00’ for column ‘birthday’ at row 1

问题背景

使用navicat添加过程存储函数时,代码如下:

报错:

原因分析

这是因为当前的MySQL不支持datetime为0的情况。

解决方法

方法一:修改sql_mode

SQL Mode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。

set @@global.sql_mode = "ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
set @@sql_mode = "ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

方法二:日期不要用0值。

执行成功

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享