mysql 修复插入零日期报错

文章目录

问题

数据插入mysql时报错

部分关键内容如下

bash 复制代码
Incorrect datetime value: '0000-00-00' for column 'createdAt' at row 1

解决

原因

从MySQL 5.7.5开始,默认情况下不允许插入零日期或零时间值到DATETIME或 TIMESTAMP列。

实际是因为SQL模式包含NO_ZERO_DATE,禁止零日期

处置

  1. 查看mysql模式
bash 复制代码
SELECT @@GLOBAL.sql_mode;
+-----------------------------------------------------------------------------------------------------------------------+
| @@GLOBAL.sql_mode                                                                                                     |
+-----------------------------------------------------------------------------------------------------------------------+
| ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION |
+-----------------------------------------------------------------------------------------------------------------------+
1 row in set (0.02 sec)
  1. 修改模式
bash 复制代码
SET GLOBAL sql_mode = REPLACE(@@GLOBAL.sql_mode, 'NO_ZERO_DATE', '');

修改完毕后即可插入零日期,然后由建表语句时的设置插入当前时间等等。

reference

相关推荐
十五年专注C++开发11 小时前
浅谈Qt中的QSql模块整体设计
开发语言·数据库·c++·qt
TDengine (老段)11 小时前
TDengine 生态系统连接指南
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
k***921611 小时前
C++:继承
java·数据库·c++
一只旭宝11 小时前
Linux专题十二:mysql数据库以及redis数据库
linux·数据库·mysql
萧曵 丶11 小时前
MySQL B+树详解
数据库·b树·mysql
鱼跃鹰飞12 小时前
面试题:Spring事务失效的八大场景
数据库·mysql·spring
ss27312 小时前
类的线程安全:多线程编程-银行转账系统:如果两个线程同时修改同一个账户余额,没有适当的保护机制,会发生什么?
java·开发语言·数据库
郑泰科技12 小时前
windows下启动hbase的步骤
数据库·windows·hbase
子一!!12 小时前
MySQL数据库基础操作
数据库·mysql·oracle
DarkAthena12 小时前
【GaussDB】从 sqlplus 到 gsql:Shell 中执行 SQL 文件方案的迁移与改造
数据库·sql·oracle·gaussdb