【发布时间】:2020-08-28 21:41:55
【问题描述】:
我有一张这样的桌子:
CREATE TABLE event (
id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(80) NOT NULL,
start_datetime TIMESTAMP NOT NULL DEFAULT '1970-01-01 00:00:01',
end_datetime TIMESTAMP NOT NULL DEFAULT '1970-01-01 00:00:01',
description TEXT,
created TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
modified TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)
);
插入这条新记录时没有错误:
insert into event (name, start_datetime, end_datetime)
value
('myName', '2020-01-05 18:00:00', '2020-01-07 23:59:00')
;
但是这条记录抛出错误:
insert into event (name, start_datetime, end_datetime)
value
('myName', '2045-01-05 18:00:00', '2045-01-07 23:59:00')
;
错误是
Data truncation: Incorrect datetime value: '2045-01-05 18:00:00' for column 'start_datetime' at row 1
有人可以帮忙吗? 非常感谢!
更新: 在 MySql 文档中找到了这个: TIMESTAMP 数据类型用于同时包含日期和时间部分的值。 TIMESTAMP 的范围为 '1970-01-01 00:00:01' UTC 到 '2038-01-19 03:14:07' UTC。
所以我猜2045年太远了……
【问题讨论】:
-
所以你自己找到了答案。您不妨将其发布为答案,因为您实际上是第一个!
标签: mysql sql timestamp sql-insert mysql-error-1064