sql >> Databasteknik >  >> RDS >> Mysql

Unix tidsstämpelkonvertering är annorlunda i Mysql och Oracle

Unix tidsstämpel är sekunder från 1970-01-01 00:00:00 UTC vilket faktiskt är 1970-01-01 01:00:00 i din lokala tidszon (eller tidszonen där din MySQL-server finns). Ser ut som FROM_UNIXTIME tar hänsyn till detta.

För Oracle kan du använda den här funktionen:

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;

Jag antar att om du gillar att få UTC-tid i MySQL så måste du köra

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



  1. Ta bort MariaDB eller MySQL helt från CentOS 7 eller RHEL 7

  2. Okänt nyckelord Near Fields, avslutas vid användning av INTO OUTFILE i mysql-fråga

  3. Hur man byter ut ' eller något specialtecken när du använder XMLELEMENT Oracle

  4. Hur definierar jag en ARRAY-kolumn i en Sequel Postgresql-migrering?