mysql报错解决 `1525 - Incorrect DATETIME value: ‘0000-00-00 00:00:00‘`

你遇到的错误 1525 - Incorrect DATETIME value: '0000-00-00 00:00:00' 说明数据库启用了严格模式(sql_mode 包含了 NO_ZERO_DATE),并且 '0000-00-00 00:00:00' 作为无效的日期不被允许。

解决方案

  1. 查看当前的 SQL 模式:

你可以通过以下查询查看当前的 sql_mode 设置,看看是否包含了 NO_ZERO_DATE。

sql 复制代码
SELECT @@sql_mode;

如果返回的 sql_mode 包含 NO_ZERO_DATE,则会拒绝 '0000-00-00 00:00:00' 这种无效日期。

  1. 禁用 NO_ZERO_DATE 模式(临时修改):

如果你希望临时绕过这个问题,可以通过禁用 NO_ZERO_DATE 来允许使用 '0000-00-00 00:00:00'。使用以下 SQL 语句:

sql 复制代码
SET SESSION sql_mode = REPLACE(@@sql_mode, 'NO_ZERO_DATE', '');

然后,再执行你的查询:

sql 复制代码
SELECT * FROM rr_main WHERE UPDATE_TIME = '0000-00-00 00:00:00';

注意: 这个修改只会在当前会话中生效,当 MySQL 服务重启后会恢复默认设置。

  1. 使用 IS NULL 查找(如果 0000-00-00 00:00:00 被视作空值):

在某些情况下,如果数据库强制插入无效日期,'0000-00-00 00:00:00' 可能被处理为 NULL,你可以尝试通过 IS NULL 查找:

sql 复制代码
SELECT * FROM rr_main WHERE UPDATE_TIME IS NULL;
  1. 永久禁用 NO_ZERO_DATE(修改 MySQL 配置):

如果你希望永久禁用 NO_ZERO_DATE,可以编辑 MySQL 配置文件 my.cnf 或 my.ini,在 [mysqld] 部分添加如下配置:

ini 复制代码
sql_mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

然后重启 MySQL 服务。

  1. 替换无效的 0000-00-00 00:00:00 值:

如果你知道表中存在 0000-00-00 00:00:00 作为无效日期的记录,可以直接用合法的日期值进行替换,例如:

sql 复制代码
UPDATE rr_main
SET UPDATE_TIME = NOW()
WHERE UPDATE_TIME = '0000-00-00 00:00:00';

这将把所有 UPDATE_TIME 为 '0000-00-00 00:00:00' 的记录更新为当前时间。

总结:

  • 如果 NO_ZERO_DATE 被启用,会导致 '0000-00-00 00:00:00' 作为无效日期值出现错误。
  • 可以临时禁用 NO_ZERO_DATE,或者修改查询逻辑查找 NULL 值。
  • 永久解决方案是调整 sql_mode 配置或者替换表中的无效日期值。

a. 如果你希望进一步了解如何更改 MySQL 的配置或如何使用其他查询方式来解决问题,请告诉我。

相关推荐
紧跟先前的步伐1 分钟前
Go AI Agent 实战 18|Tool Calling 的基本原理与完整执行流程
前端·数据库·人工智能·ai·golang·1024程序员节
YB13753 分钟前
Jetpack Compose 动画AnimatedContent
android
EnCi Zheng12 分钟前
AI Agent工具误调用怎么解决-从参数校验到高危二次确认的四层工程防线
大数据·数据库·人工智能
泡海椒29 分钟前
JQuick-SQL 逻辑数据仓库:以注册数据集构建轻量分析层
数据库·数据仓库·sql
l1t1 小时前
DeepSeek辅助编写连接sqlite的CLI
数据库·golang·sqlite
翔云1234561 小时前
Gaea中配置如何更新
运维·数据库·mysql
泡海椒2 小时前
JQuick-SQL JQuickTable 模型:XML 动态 SQL 的表封装边界
xml·数据库·sql
ss2733 小时前
AI时代首先数据库-PostgreSQL实战笔记 | 28 PostgreSQL MVCC机制介绍
数据库·笔记·postgresql
奇牙coding3 小时前
doubao-seed-2.1-pro 报 HTTP 401 怎么办?Key 正确也要检查请求头和端点
网络·数据库·http·ai
美狐美颜SDK开放平台11 小时前
准备开发直播APP?视频美颜SDK接入前的十项检查清单
android·ios·音视频·直播美颜sdk·视频美颜sdk