我想知道我应该使用什么查询函数来创建一个时间列,当它在不同时区打开时改变它的事务时间?例如,如果我在 PST 区域中创建了显示 PST 计时事务的时间列,现在如果有人在 EST 或 CST 的这个时间列上提出查询或创建报告,他/她应该会看到他们各自时间的事务时间区。有没有办法我们可以在 Oracle 11g 中实现这一点。我还在学习 Oracle SQL。任何帮助高度赞赏。
1 回答
0
请参阅下面一个非常基本的代码段,我认为从您的角度进行修改就可以满足您的要求。希望这可以帮助。
WITH TM_TEMP AS
( SELECT SESSIONTIMEZONE ZN FROM DUAL
)
SELECT CAST(CAST(SYSTIMESTAMP AS TIMESTAMP WITH TIME ZONE) at TIME zone T.ZN AS TIMESTAMP)
FROM TM_TEMP T;
-----------------------------------------------------------------------------
Input : SYSTIMESTAMP --> 04/01/2016 07:58:09 -04:00 [EST]
Output : 04/01/2016 17:28:55.546934 [IST]
因此,通过这种方式,您可以根据会话(位置)设置时区并生成报告。
于 2016-04-01T11:59:49.593 回答