使用系统时区将纪元时间转换为oracle数据库中的时间戳

Convert epoch time to timestamp in oracle database with system timezone

有人可以建议我如何在 oracle 中将纪元时间转换为时间戳,包括数据库时区。我目前正在使用以下代码:

cast ( TO_TIMESTAMP_TZ('1970-01-01 00:00:00.0 UTC', 'YYYY-MM-DD HH24:MI:SS.FF TZR') + NUMTODSINTERVAL(value/1000, 'SECOND') as timestamp with local time zone)

但这似乎正在转换为会话时区。我需要将其转换为 dbtimezone

(在我的例子中,select dbtimezone 给出 PST 时间,select sessiontimezone 给出 Asia/Calcutta 时间。)

数据类型 timestamp with local time zone 始终SESSIONTIMEZONE

显示 date/time

尝试

(TO_TIMESTAMP_TZ('1970-01-01 00:00:00.0 UTC', 'YYYY-MM-DD HH24:MI:SS.FF TZR') + NUMTODSINTERVAL(value/1000, 'SECOND')) AT TIME ZONE DBTIMEZONE

或文字:

(Timestamp '1970-01-01 00:00:00 UTC' + value/1000 * INTERVAL '1' SECOND) AT TIME ZONE DBTIMEZONE