sql >> Base de Datos >  >> RDS >> Mysql

Cómo obtener la fecha y hora UTC de UNIX_TIMESTAMP () en MySQL

Creo que tu problema no es CONVERT_TZ , pero FROM_UNIXTIME .

FROM_UNIXTIME toma un número entero como argumento, lo que significa 32 bits.

Si toma la marca de tiempo de Unix de hoy:1480546792 , desplazado a la derecha 24 bits:simplemente está excediendo el límite de 32 bits para un parámetro válido en unix_time .

from_unixtime solo puede manejar parámetros hasta 2147483647 - Lo que significa que funciona hasta 2038-01-19 04:14:07

También me he encontrado con este problema, y ​​desde 2002 se está "desarrollando" una solución para esto.

Hasta que finalmente se resuelva, debe usar una solución alternativa, usando date_add . En lugar de

from_unixtime (x)

usar

date_add(from_unixtime(0), INTERVAL x second)

Resultado(s):

SELECT from_unixtime (2147483647); //2038-01-19 04:14:07 
SELECT from_unixtime (2147483648); //NULL

SELECT date_add(from_unixtime(0), Interval 2147483647 second) //2038-01-19 04:14:07
SELECT date_add(from_unixtime(0), Interval 2147483648 second) //2038-01-19 04:14:08