MySQL中未来日期的日期时间值不正确

8

MySQL语句:

insert into `banners` 
    (`path`, `app_id`, `enabled`, `from_date`, `to_date`, `updated_at`, `created_at`) 
values 
    ('banners/example.png', 'com.example.ccp_attacker', 1, '2000-01-01 00:00:00', '2099-12-31 00:00:00', '2100-06-04 00:00:00', '2100-06-04 00:00:00')

产生错误 #1292 - 在第1行的'updated_at'列中,时间值不正确:'2100-06-04 00:00:00'

为什么2100年6月4日00:00:00不是一个有效的时间?


看一下这个,可能会有关联。 - Mahesh
updated_at 是一个 TIMESTAMP 列吗? - mendosi
它在一个日期列上。 - Michael Tsang
1个回答

3

MySQL日期不会超过2038年,这是一个非常古老的问题,由于某些原因他们没有解决它。在MySQL中可接受日期的最大值为2038。当我遇到这个问题时,我将日期保存在MySQL中的varchar类型,然后在业务逻辑中将其转换为日期。


2
有关2038年问题的更多信息。 - Cato Minor
TIMESTAMP转换为DATETIME,请参见https://dev59.com/H4Hba4cB1Zd3GeqPRnq2 - sastorsl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接