Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Konvertieren von Datum zu Epoche-Oracle

Subtrahieren von DATE '1970-01-01' aus dem Wert ergibt die Anzahl der Tage (und Bruchteile von Stunden/Minuten/Sekunden) Unterschied und dann können Sie mit 24*60*60 multiplizieren :

(date_value - DATE '1970-01-01')*24*60*60

Aktualisieren :

Normalerweise wird die Epochenzeit ab 1970-01-01T00:00:00 UTC gemessen . Wenn Ihr Datum nicht in UTC angegeben ist, müssen Sie Zeitzonen konvertieren.

Beispiel:Ihr Datum hat die Zeitzone Europe/Berlin :

( CAST(
    FROM_TZ(
      CAST( date_value AS TIMESTAMP ),     -- Cast to timestamp
      'Europe/Berlin'                      -- Convert to expected Time Zone
    )
    AT TIME ZONE 'UTC'                     -- Convert Time Zone to UTC
    AS DATE                                -- Cast back to DATE data type
  )
  - DATE '1970-01-01'
)*24*60*60

db<>Geige