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

Convertir de date en époque-Oracle

Soustraire DATE '1970-01-01' à partir de la valeur donnera le nombre de jours (et les fractions d'heures/minutes/secondes) de différence, puis vous pouvez multiplier par 24*60*60 :

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

Mettre à jour :

En règle générale, l'heure d'époque est mesurée à partir de 1970-01-01T00:00:00 UTC . Si votre date n'est pas en UTC, vous devrez convertir les fuseaux horaires.

Par exemple, si votre date correspond au fuseau horaire 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<>violon