DATE '1970-01-01'
を引く 値から日数(および小数時間/分/秒)の差が得られ、24*60*60
を掛けることができます :
(date_value - DATE '1970-01-01')*24*60*60
更新 :
通常、エポック時間は1970-01-01T00:00:00 UTC
から測定されます。 。日付がUTCでない場合は、タイムゾーンを変換する必要があります。
たとえば、日付にタイムゾーンが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<>フィドル