Domanda

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> 

Il primo campo è il valore più alto possibile che posso dare a FROM_UNIXTIME. Il campo successivo è che il valore più uno che restituisce NULL. Il terzo campo è il massimo valore possibile per un senza segno a 32 bit int. Il valore finale è la differenza tra il livello massimo unixtime possibile e il più alto possibile int che è un po 'più di 18 giorni vale la pena di secondi. Sembra che si ferma alla fine del 2037 nel fuso orario locale. Tutte le idee perché? E 'questo un punto di rottura naturale in uno dei calcoli? È che solo un limite arbitrario in mysqld?

È stato utile?

Soluzione

normalmente gamma timestamp unix è dal 1 ° gennaio 1970 al 31 Dicembre 2037 Per ulteriori informazioni, dare un'occhiata a http://en.wikipedia.org/wiki/Year_2038_problem

Altri suggerimenti

ho ottenuto risultati molto diversi a GMT + 0200. stessi risultati sia per i686 e x86_64.

Propably 2038/01/01 UTC non era consentito.

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top