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