Trừ DATE '1970-01-01'
từ giá trị sẽ cho số ngày (và số giờ / phút / giây) chênh lệch và sau đó bạn có thể nhân với 24*60*60
:
(date_value - DATE '1970-01-01')*24*60*60
Cập nhật :
Thông thường, thời gian kỷ nguyên được đo từ 1970-01-01T00:00:00 UTC
. Nếu ngày của bạn không phải theo giờ UTC thì bạn sẽ cần chuyển đổi múi giờ.
Ví dụ:nếu ngày của bạn có múi giờ 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 <> fiddle