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

问题背景

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

图片[1] - Procedure execution failed1292 – Incorrect date value: ‘0000-00-00’ for column ‘birthday’ at row 1 - 三酷猫笔记

报错:

图片[2] - Procedure execution failed1292 – Incorrect date value: ‘0000-00-00’ for column ‘birthday’ at row 1 - 三酷猫笔记

原因分析

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

解决方法

方法一:修改sql_mode

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

图片[3] - Procedure execution failed1292 – Incorrect date value: ‘0000-00-00’ for column ‘birthday’ at row 1 - 三酷猫笔记
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值。

图片[4] - Procedure execution failed1292 – Incorrect date value: ‘0000-00-00’ for column ‘birthday’ at row 1 - 三酷猫笔记

执行成功

图片[5] - Procedure execution failed1292 – Incorrect date value: ‘0000-00-00’ for column ‘birthday’ at row 1 - 三酷猫笔记
© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享