我正在尝试从 Oracle DB 表中提取数据,并且能够正确转换时间列,但是它比它应该的 -2 小时。
请记住,StartTime
列位于大纪元时间。 你能向我解释一下我的查询有什么问题吗?
列名称为:Description
,StartTime
select Description,
TO_CHAR(FROM_TZ(CAST(
DATE '1970-01-01' + (1/24/60/60/1000) * StartTime as TIMESTAMP),
'America/New-York'),
'DD-MM-YYYY HH24:MI:SS') as StartTime
from MyTable
我试图改变America/New-York
,但最终得到了相同的结果。
这就是我解决问题的方式:
select TO_CHAR(FROM_TZ(CAST(DATE '1970-01-01' + (1/24/60/60/1000) * StartTime AS TIMESTAMP), 'UTC') AT TIME ZONE 'America/New_York', 'DD-MM-YYYY HH24:MI:SS') as StartTime
from MyTable
希望这对其他人有帮助。