PHP год 2038 проблема с 64-битным MySQL не может вставить дату через PHPMyAdmin - PullRequest
1 голос
/ 22 июня 2019

У меня есть таблица MySQL, в которой есть столбец с именем «create_at», который является полем TIMESTAMP. Всякий раз, когда я пытаюсь вставить дату и время больше 2037, я получаю следующую ошибку:

#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))

Чтение это , предполагающее, что использование поля TIMESTAMP является проблемой, а использование полей DATETIME решит ее, верно?

Ответы [ 2 ]

3 голосов
/ 22 июня 2019

TIMESTAMP остается UNIX TIMESTAMP (32Bit) по соображениям совместимости ...

Предложение, которое вы прочитали, верное, вместо него используйте DATETIME.

2 голосов
/ 22 июня 2019

Вы должны использовать DATETIME тип данных.

Типы DATE, DATETIME и TIMESTAMP

Тип данных TIMESTAMP используется для значений, которыесодержат как дату, так и время.У TIMESTAMP есть диапазон от 1970-01-01 00:00:01 UTC до 2038-01-19 03:14:07 'UTC.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...