You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

插入合法时间戳时出现#1292 Incorrect datetime value错误

问题原因及解决方案

核心原因

你遇到的问题是夏令时(DST)切换导致的无效时间戳。2022年3月13日是北美地区夏令时启动日期,当地时间凌晨2点会直接跳转为3点,2022-03-13 02:21:55这个时间在对应时区规则里根本不存在,MySQL会判定为无效datetime值,因此抛出#1292 Incorrect datetime value错误。

验证方法

执行以下SQL查看当前会话时区,确认是否使用了夏令时时区:

SELECT @@session.time_zone;

若返回'America/New_York'这类启用夏令时的时区,即可确认原因。

解决方案

  • 调整时间值:直接使用合法时间点,比如2022-03-13 03:21:55(夏令时切换后)或2022-03-13 01:21:55(切换前),这也是你测试时改小时为1或3能成功的原因。
  • 修改时区配置:如果业务不需要夏令时,可将MySQL时区改为无夏令时的时区(如UTC):
    -- 临时修改当前会话时区
    SET time_zone = 'UTC';
    -- 永久修改全局时区(需重启MySQL生效)
    SET GLOBAL time_zone = 'UTC';
    
  • 更换字段类型:若无需时区自动转换,可将字段类型从timestamp改为datetime,datetime仅校验格式合法性,不会根据时区调整时间。

内容的提问来源于stack exchange,提问作者XtevensChannel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 22:30:57