【问题标题】:Oracle: epoch date to date with CEST and CETOracle:使用 CEST 和 CET 的纪元日期
【发布时间】:2011-06-07 16:12:56
【问题描述】:

我得到了一个像“1302104376”这样的日期,它存储在意大利时区 UTC+1 中。我需要将其转换为 DD:MM:YYYY HH:SS 格式,但使用 timezione UTC + 0 (GMT)。是否存在做这项工作的功能,注意白天?

感谢您的帮助 西蒙娜

【问题讨论】:

  • 您能解释一下夏令时是如何产生的吗?当您说数据存储在意大利时区 UTC+1 时 - 您的意思是字面意义上的 UTC+1,还是冬季的 UTC+1 和夏季的 UTC?当您转换为 GMT 时,是字面上的 UTC 还是冬季的 UTC 和夏季的 UTC+1?如果您存储的数据是“本地”时间,包括夏令时,那么您会很头疼,因为映射回 UTC 不是一对一的 - 您在时钟回落的那一天有一个重复的小时

标签: sql oracle plsql oracle10g


【解决方案1】:

这应该让你接近:

SQL> SELECT TO_CHAR(TO_DATE('19700101','YYYYMMDD') + 
                    (1302104376/(60*60*24)),'DD:MM:YYYY HH24:MI:SS') the_date 
       FROM dual;

THE_DATE
-------------------
06:04:2011 15:39:36

SQL> 

您需要根据时区、夏令时等方面的差异相应地调整输出。

This site 对纪元日期很有指导意义。

【讨论】:

  • 如何为 EST 调整此查询,因为它给了我 5 小时的差异?谢谢
【解决方案2】:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-28
    • 2011-07-26
    • 1970-01-01
    • 2014-03-29
    • 2022-11-13
    • 2022-01-11
    • 2020-02-17
    相关资源
    最近更新 更多