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
です。3番目のフィールドは、符号なし32ビット整数の可能な最大値です。最終的な値は、可能な限り最高のUNIXTIMEと、可能な限り最高のintの差であり、18日強の秒に相当します。2037
ローカルタイムゾーンの終わりで停止しているようです。なぜ何かアイデアはありますか?それは計算の1つにおける自然な限界点ですか?それはただの恣意的な制限mysqld
ですか?