MySQL不正确的时间戳值

时间:2017-10-03 15:46:23

标签: mysql date datetime sql-timestamp

我试图插入日期时间值' 1970-01-01 00:00:01'在timestamp列中但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'。什么是错的,什么是真正的最低时间戳值? 感谢。

1 个答案:

答案 0 :(得分: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'));