MySQL 不正确的时间戳值

MySQL incorrect timestamp value

我正在尝试在时间戳列中插入日期时间值“1970-01-01 00:00:01”,但 MySQL 返回错误 "Incorrect datetime value: '1970-01-01 00:00:01' for column 'timestamp'"

CREATE TABLE TST_TABLE
(
  tst_column timestamp NULL
)

INSERT INTO TST_TABLE(tst_column) VALUES('1970-01-01 00:00:01');

我很困惑,因为 MySQL 文档声称时间戳的最低有效值是“1970-01-01 00:00:01”。什么是错误的,什么是真正的最低时间戳值? 谢谢

这是一个时区问题。在插入之前将时区设置为 UTC,例如:

SET time_zone='+00:00';
INSERT INTO TST_TABLE(tst_column) VALUES('1970-01-01 00:00:01');

另一种选择是使用 CONVERT_TZ 将时间戳转换为 UTC 时区。例如,如果您的时区是 Europe/Paris

 INSERT INTO TST_TABLE(tst_column) VALUES(CONVERT_TZ('1970-01-01 00:00:01', 'Europe/Paris', 'UTC'));