【发布时间】:2014-12-18 04:09:06
【问题描述】:
我必须使用 Oracle 10g 显示 EST/EDT 和 GMT/UTC。问题是在 11 月 2 日 UTC 差异将更改“+ 05”小时,这将导致我的工作失败。请让我知道如何在没有的情况下解决它手动将间隔更改为 5 小时。我尝试过 new_time 功能,但这并不能解决问题。所有列都是 DATE 数据类型。
SELECT PROCESS_NAME,
date_modified as EST_DATE_MODIFIED,
date_modified + interval '+ 04' hour as GMT_DATE_MODIFIED
FROM tbl_process_status ;
结果
EST_DATE_MODIFIED GMT_DATE_MODIFIED
22-OCT-14 11:08:25 22-OCT-14 03:08:25
感谢 Ed,但上面的查询没有返回正确的 UTC 时间。
EST - 22-OCT-14 12:19:55
Correct UTC- 22-OCT-14 04:19:55
Above Query UTC 22-OCT-14 08:19:55
select (TO_NUMBER(TO_CHAR(CURRENT_TIMESTAMP, 'TZH')) * INTERVAL '1' HOUR) from dual;
-0 4:0:0.0
感谢 Multisync。 我得到了以下结果,但我只需要 DD-MON-YY HH:MM:SS 格式的数据。
Expected 22-OCT-14 12:19:55
Expected 22-OCT-14 04:19:55
Result 22-OCT-14 12.19.55.000000000 PM AMERICA/NEW_YORK
Result 22-OCT-14 04.19.55.000000000 PM UTC
【问题讨论】:
-
您的
date_modified是DATE还是TIMESTAMP WITH TIME ZONE? -
Date_modified 是日期数据类型。