gpt4 book ai didi

sql - SQL查询中的时区转换

转载 作者:行者123 更新时间:2023-12-02 03:36:11 31 4
gpt4 key购买 nike

我正在使用查询从 Oracle DB 获取一些应用程序接收日期,该日期存储为 GMT。现在我必须在检索时将其转换为东部标准/夏令时。我为此使用以下查询:

   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提醒,当未指定时区时,将使用本地时区进行转换。

要强制将日期识别为 GMT,请使用 from_tz。

from_tz(cast(date'2014-12-08' as timestamp), 'GMT') at time zone 'US/Eastern'

关于sql - SQL查询中的时区转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22933608/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com