I have very different results in GMT + 0200. The same results for i686 and x86_64.
Intermediate 2038-01-01 UTC is not permitted.
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 | +---------------------------+---------------------------+---------------+----------------------------+ | 2038-01-01 01:59:59 | 2038-01-01 02:00:00 | 2147483647 | -1566850 | +---------------------------+---------------------------+---------------+------------------- ---------+ 1 row in set (0.00 sec) mysql> \s -------------- mysql Ver 14.12 Distrib 5.0.77, for redhat-linux-gnu (i686) using readline 5.1
source share