1

我正在尝试在时间戳列中插入日期时间值“1970-01-01 00:00:01”,但 MySQL 返回错误“日期时间值不正确:“时间戳”列的“1970-01-01 00:00:01” "

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'。出了什么问题,什么是真正的最低时间戳值?谢谢。

4

1 回答 1

3

这是一个时区问题。在插入之前将时区设置为 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'));
于 2017-10-03T16:00:30.487 回答