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

La conversión de marca de tiempo de Unix es diferente en Mysql y Oracle

La marca de tiempo de Unix es segundos desde 1970-01-01 00:00:00 UTC que en realidad es 1970-01-01 01:00:00 en su zona horaria local (o la zona horaria donde se encuentra su servidor MySQL). Se parece a FROM_UNIXTIME tiene esto en cuenta.

Para Oracle puede usar esta función:

FUNCTION UnixTime2Timestamp(UnixTime IN NUMBER) RETURN TIMESTAMP IS
BEGIN
    RETURN (TIMESTAMP '1970-01-01 00:00:00 UTC' + UnixTime * INTERVAL '1' SECOND) AT LOCAL;
END UnixTime2Timestamp;

Supongo que si desea obtener la hora UTC en MySQL, debe ejecutar

select 
   CONVERT_TZ(FROM_UNIXTIME(1387444958),'{your local timezone}','UTC') 
from dual;