Pregunta

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> 

El primer campo es el valor más alto posible que puedo dar a FROM_UNIXTIME. El siguiente campo es que el valor más uno que devuelve NULL. El tercer campo es el valor más alto posible para un unsigned int de 32 bits. El valor final es la diferencia entre el mayor unixtime posible y la más alta posible int que es un poco más de 18 días el valor de segundos. Parece ser que se detenga al final del 2037 en la zona horaria local. Cualquier idea por qué? Es que un punto de ruptura natural en uno de los cálculos? Es que solo un límite arbitrario en mysqld?

¿Fue útil?

Solución

Normalmente gama marca de tiempo Unix es de 1 en 1970 a 31 dic 2037 Para más información, echa un vistazo a http://en.wikipedia.org/wiki/Year_2038_problem

Otros consejos

Me puso muy diferentes resultados en GMT + 0200. mismos resultados tanto para i686 y x86_64.

además probablemente 01/01/2038 UTC no estaba permitido.

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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top