Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Die Konvertierung von Unix-Zeitstempeln ist in Mysql und Oracle unterschiedlich

Der Unix-Zeitstempel sind Sekunden ab 1970-01-01 00:00:00 UTC das ist eigentlich 1970-01-01 01:00:00 in Ihrer lokalen Zeitzone (oder der Zeitzone, in der sich Ihr MySQL-Server befindet). Sieht aus wie FROM_UNIXTIME berücksichtigt dies.

Für Oracle können Sie diese Funktion verwenden:

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;

Ich nehme an, wenn Sie UTC-Zeit in MySQL erhalten möchten, müssen Sie ausführen

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