Subtraindo
DATE '1970-01-01'
do valor dará o número de dias (e frações de horas/minutos/segundos) de diferença e então você pode multiplicar por 24*60*60
:(date_value - DATE '1970-01-01')*24*60*60
Atualizar :
Normalmente, o tempo de época é medido a partir de
1970-01-01T00:00:00 UTC
. Se sua data não estiver em UTC, você precisará converter os fusos horários. Por exemplo, se sua data tiver o fuso horário
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