Я нахожусь в восточном времени США, чтобы объяснить разницу.

mysql> SELECT FROM_UNIXTIME(2145916799), FROM_UNIXTIME(2145916800), POW(2,32-1)-1, 2145916799 - POW(2,32-1)-1;
+---------------------------+---------------------------+---------------+----------------------------+
| FROM_UNIXTIME(2145916799) | FROM_UNIXTIME(2145916800) | POW(2,32-1)-1 | 2145916799 - POW(2,32-1)-1 |
+---------------------------+---------------------------+---------------+----------------------------+
| 2037-12-31 18:59:59       | NULL                      |    2147483647 |                   -1566850 | 
+---------------------------+---------------------------+---------------+----------------------------+
1 row in set (0.00 sec)

mysql> 

е поле - это максимально возможное значение, которое я могу датьFROM_UNIXTIME, Следующее поле - это значение плюс одно, которое возвращаетNULL, Третье поле является максимально возможным значением для 32-разрядного целого без знака. Конечное значение - это разница между максимально возможным значением UNIXTIME и максимально возможным значением int, которое составляет немногим более 18 дней. Похоже, что он останавливается в конце2037 в местном часовом поясе. Есть идеи почему? Это естественный перелом в одном из расчетов? Это просто произвольный предел вmysqld?

Ответы на вопрос(2)

Ваш ответ на вопрос