使用系统时区将纪元时间转换为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
有人可以建议我如何在 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
尝试
(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