2021-12-21 227
简介: MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘FrozenTime‘ at row 1
问题:
用 navicat 导入数据时,报错:
[Err] 1292 - Incorrect datetime value: '0000-00-00 00:00:00' for column 'FrozenTime' at row 1

原因:
这是因为当前的 MySQL 不支持 datetime 为 0 的情况。
解决:
sql_mode : 定义了 MySQL 应支持的 SQL语法、数据校验 等,
这样可以更容易地在不同的环境中使用 MySQL。查看全局 sql_mode:
select @@global.sql_mode;
可以看到,NO_ZERO_DATE、NO_ZERO_IN_DATE,把这两个设置去掉。

修改全局sql_mode:
set @@global.sql_mode =
'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

查看当前 sql_mode:

修改当前 sql_mode:
set @@sql_mode =
'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

OK,问题解决。
一旦 MySQL 重启,就必须重新设置一次 全局 和 当前的 sql_mode。
修改sql_mode配置:
在 MySQL 配置文件 mysql.ini 中修改 sql_mode 配置,就不需要每次重启 MySQL 就得重新设置 sql_mode 了。
- 修改MySQL配置, 在 my.ini 的 [mysqld] 下添加:
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?