如果您使用的是TIMESTAMP WITH TIME ZONE
数据类型:
甲骨文设置:
CREATE TABLE Table_Name (
open_time TIMESTAMP WITH TIME ZONE
);
INSERT INTO Table_Name VALUES (SYSTIMESTAMP AT TIME ZONE 'UTC');
查询:
SELECT open_time AT TIME ZONE 'UTC' AS utc,
open_time AT TIME ZONE 'EST' AS est
FROM Table_Name;
输出:
UTC EST
----------------------------------- -----------------------------------
02-MAR-16 22.41.38.344809000 UTC 02-MAR-16 17.41.38.344809000 EST
,或者如果你只是使用TIMESTAMP
数据类型:
甲骨文设置:
CREATE TABLE Table_Name (
open_time TIMESTAMP
);
INSERT INTO Table_Name VALUES (SYSTIMESTAMP);
查询:
SELECT CAST(open_time AS TIMESTAMP WITH TIME ZONE) AT TIME ZONE 'UTC' AS utc,
CAST(open_time AS TIMESTAMP WITH TIME ZONE) AT TIME ZONE 'EST' AS est
FROM Table_Name;
输出:
UTC EST
----------------------------------- -----------------------------------
02-MAR-16 22.41.38.344809000 UTC 02-MAR-16 17.41.38.344809000 EST
来源
2016-03-02 22:43:58
MT0
非常棒的答案,非常感谢您花时间简洁地说明问题。 – Travis
注意时区'EST' **不**考虑夏令时,尽量'INSERT INTO TABLE_NAME VALUES(SYSTIMESTAMP +间隔 '6' 个月)AT TIME ZONE 'UTC');'作比较。使用区域名称,例如'选择OPEN_TIME AT TIME ZONE“美/东”从...'或'EST5EDT' –
我使用的这个,从我这个检查是做我想要的。谢谢! 'select i.dtm_open_time ,FROM_TZ(cast(i.dtm_open_time as timestamp),'0:00')AT TIME ZONE'US/Eastern' from dcc.incident i' – Travis