我正在使用查询从存储为GMT的Oracle DB获取一些应用程序的“接收日期”。现在,我必须在检索时将其转换为东部标准/夏令时。我为此使用以下查询:
select to_char (new_time(application_recv_date,'gmt','est'), 'MON dd, YYYY') from application
它适合标准时间。但是,为了节省夏时制,我们需要根据时区信息将其转换为“ edt”。我不确定如何执行此操作。请帮帮我
您可以使用此查询,而不必担心时区更改。
select to_char(cast(application_recv_date as timestamp) at time zone 'US/Eastern', 'MON dd, YYYY' ) from application;
前任:
美东时间:
select cast(date'2014-04-08' as timestamp) d1, cast(date'2014-04-08' as timestamp) at time zone 'US/Eastern' d2 from dual; D1 D2 ---------------------------------- ------------------------------------------- 08-APR-14 12.00.00.000000 AM 07-APR-14 08.00.00.000000 PM US/EASTERN
select cast(date'2014-12-08' as timestamp) d1, cast(date'2014-12-08' as timestamp) at time zone 'US/Eastern' d2 from dual; D1 D2 ---------------------------------- ------------------------------------------- 08-DEC-14 12.00.00.000000 AM 07-DEC-14 07.00.00.000000 PM US/EASTERN
更新:
感谢Alex Poole提醒您,如果未指定时区,则使用本地时区进行转换。
要强制将日期识别为格林尼治标准时间,请使用from_tz。
from_tz(cast(date'2014-12-08' as timestamp), 'GMT') at time zone 'US/Eastern'