Oracle
 sql >> Database >  >> RDS >> Oracle

Converti da data a epoca-Oracle

Sottraendo DATE '1970-01-01' dal valore darà il numero di giorni (e frazioni di ore/minuti/secondi) di differenza e quindi puoi moltiplicare per 24*60*60 :

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

Aggiorna :

In genere, il tempo dell'epoca viene misurato da 1970-01-01T00:00:00 UTC . Se la tua data non è in UTC, dovrai convertire i fusi orari.

Ad esempio, se la tua data ha il fuso orario 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<>violino