如何查找特定 TIMESTAMP WITH TIME ZONE 是否处于夏令时范围内

发布于 2024-09-30 01:23:15 字数 309 浏览 1 评论 0原文

我有一个应用程序,它存储 GMT 时间,但与具有 Olsen tz 名称(例如“美国/纽约”)的机场相关联。

我需要确定给定日期是否在当地夏令时期间。

我能找到的最接近的是 TZ_OFFSET('Tzname'),但没有简单的方法来获取相对于某个日期的下一个 DST 开始/结束时间。

这似乎是朝着正确方向迈出的一步...

选择时区“GMT”的演员(mydate 作为时间戳)作为 mydateZ, from_tz(cast (mydate as timestamp),'GMT') 在时区 myzoneName 为 mydateLocal

I have an app that stores times in GMT, but associated with airports which have Olsen tz names like 'America/New York'.

I need to determine if a given date is within the local daylight savings period.

The closest I could find is TZ_OFFSET('Tzname'), but no simple way to get the next DST start/end time relative to some date.

This seems like a step in the right direction...

select cast (mydate as timestamp) at time zone 'GMT' as mydateZ,
from_tz(cast (mydate as timestamp),'GMT') at time zone myzoneName as mydateLocal

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

说不完的你爱 2024-10-07 01:23:15

考虑到类似的问题,我针对您的问题编写了以下查询:

select decode(to_char(from_tz(cast (sysdate as timestamp),'CET'),'TZR'),
to_char(from_tz(cast (sysdate as timestamp),'CET'),'TZD'),'N','Y') is_daylight 
from dual

简短的解释:
我将时区(“CET”)中的当前日期(sysdate)转换为时间戳,并比较时区的正常名称(“TZR”)和夏令时名称(“TZD”)。如果它们匹配,则 sysdate 不在夏令时范围内,如果它们不匹配(例如 sysdate-100 是“CET”时区的“CEST”),则该日期在夏令时范围内。
日期和时区可以作为查询的参数。

Thinking about a similar problem I wrote the following query to your question:

select decode(to_char(from_tz(cast (sysdate as timestamp),'CET'),'TZR'),
to_char(from_tz(cast (sysdate as timestamp),'CET'),'TZD'),'N','Y') is_daylight 
from dual

A short explanation:
I convert the current date (sysdate) in my timezone ('CET') to a timestamp and compare the the normal name ('TZR') and daylight savings time name ('TZD') of the timezone. If they match then sysdate is not within daylight saving and if they do not match (for example sysdate-100 is 'CEST' for 'CET' timezone) then the date is within daylight saving.
Date and timezone can be a parameter of the query.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文