Mysql
 sql >> Base de données >  >> RDS >> Mysql

La conversion de l'horodatage Unix est différente dans Mysql et Oracle

L'horodatage Unix est en secondes depuis 1970-01-01 00:00:00 UTC qui est en fait 1970-01-01 01:00:00 dans votre fuseau horaire local (ou le fuseau horaire où se trouve votre serveur MySQL). Ressemble à FROM_UNIXTIME en tient compte.

Pour Oracle, vous pouvez utiliser cette fonction :

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;

Je suppose que si vous aimez obtenir l'heure UTC dans MySQL, vous devez exécuter

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