【发布时间】:2012-03-02 06:37:31
【问题描述】:
我在 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,
);
【问题讨论】:
标签: sql oracle timezone oracle11g