PHP 64位MySQL的2038年问题无法通过PHPMyAdmin插入日期

时间:2019-06-22 10:59:19

标签: php mysql laravel date phpmyadmin

我有一个MySQL表,该表有一个名为“ created_at”的列,该列是TIMESTAMP字段。每当我尝试插入大于2037的datetime时,都会出现以下错误:

#1292 - Incorrect datetime value: '2039-06-18 16:54:35' for column 'created_at' at row 1

我知道这是32位MySQL的问题,但是我正在运行64位,不是解决方案吗?

以下是我的MySQL版本的命令输出:

mysqld  Ver 5.7.26-0ubuntu0.18.04.1 for Linux on x86_64 ((Ubuntu))

阅读this提示使用TIMESTAMP字段是问题,而使用DATETIME字段可以解决问题,这是正确的吗?

2 个答案:

答案 0 :(得分:3)

出于兼容性原因,TIMESTAMP仍为UNIX TIMESTAMP(32位)...

您阅读的建议是正确的,请改用DATETIME。

答案 1 :(得分:2)

您应该使用DATETIME数据类型。

  

The DATE, DATETIME, and TIMESTAMP Types

     

TIMESTAMP数据类型用于包含日期和时间部分的值。 TIMESTAMP的UTC范围为'1970-01-01 00:00:01'UTC到'2038-01-19 03:14:07'UTC。