我在 Oracle DB 表中有一个类型为TIMESTAMP(6) WITH TIME ZONE
。有些数据行包含来自不同时区的数据,有些是 UTC,有些是其他时区偏移量。
有没有一种方法可以查询 Oracle 表,以便结果始终以 UTC 形式返回,并进行适当的时移?是否可以对查询本身执行某些操作,或者以某种方式更改会话?我尝试将会话时区更改为 Utc,但这似乎只影响 CURRENT_TIMESTAMP 值。
ALTER SESSION SET TIME_ZONE = 'Utc'
例如,如果一个值存储为:
21-JAN-10 03.28.38.635000000 PM -05:00
查询将返回为
21-JAN-10 08.28.38.635000000 PM Utc
表定义示例
CREATE TABLE "MyDb"."Books"
(
"GUID" RAW(32) DEFAULT SYS_GUID(),
"DATE_CREATED" TIMESTAMP (6) WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
);
您应该能够使用AT TIME ZONE
syntax
SELECT column_name at time zone 'UTC'
FROM your_table
i.e.
SQL> select * from foo;
COL1
---------------------------------------------------------------------------
09-FEB-12 01.48.40.072000 PM -05:00
09-FEB-12 10.49.26.613000 AM US/PACIFIC
SQL> select col1 at time zone 'UTC'
2 from foo;
COL1ATTIMEZONE'UTC'
---------------------------------------------------------------------------
09-FEB-12 06.48.40.072000 PM UTC
09-FEB-12 06.49.26.613000 PM UTC
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)