【发布时间】:2021-07-13 22:18:35
【问题描述】:
这是一个谜题。获取以下查询并在 oracle sqldeveloper 中执行:
select to_char(CAST (sysdate AS TIMESTAMP WITH TIME ZONE) ,'TZH:TZM') dst,
to_char(CAST (sysdate-160 AS TIMESTAMP WITH TIME ZONE) ,'TZH:TZM') nodst
from dual;
你会得到“-04:00”、“-05:00”的结果。这给出了正确的 dst 调整时区偏移量(东部),其中一个日期在 dst,而另一个不在。从 sqlplus 运行相同的查询将两个值都设为“-4:00”。这会导致从 sqlplus 调用时也显示不正确值的包出现问题。
【问题讨论】:
-
两个客户端的会话时区是什么? This is the same effect - 当然,并不是说您拥有这些价值观,但它们似乎有所不同。 (为什么要转换 sysdate,而不仅仅是使用 systimestamp?也许只是作为示例日期?)
标签: oracle oracle-sqldeveloper sqlplus