【问题标题】:Issues with converting the hourly timestamp from GMT to PDT将每小时时间戳从 GMT 转换为 PDT 的问题
【发布时间】:2020-11-12 13:46:38
【问题描述】:

我正在寻找以下问题的答案。

   select count(1), to_char(DATE_CREATED,'DD-MM-YYYY HH24') from GDPR where DATE_CREATED>sysdate-1
    group by to_char(DATE_CREATED,'DD-MM-YYYY HH24') order by to_char(DATE_CREATED,'DD-MM-YYYY HH24');

  COUNT(1) TO_CHAR(DATE_
---------- -------------
         4 22-07-2020 02
        32 22-07-2020 03
        33 22-07-2020 09
         7 22-07-2020 14
        26 22-07-2020 15

这里我得到的小时字段(02,03....)是格林威治标准时间。我想要它在 PDT 中。我试图将它转换为 new_time 函数,但它被误认为是无效月份。不确定是什么问题。 任何帮助将不胜感激。谢谢。

【问题讨论】:

  • date_created 列的数据类型是什么?
  • 每日提示:不要使用 PDT/PST。这些是缩写,而是使用全名,所以这里使用“US/Pacific”。不同之处在于名称会根据夏令时自动调整,而缩写(通常)不会。
  • DATE_CREATED DATE --> 数据类型

标签: sql oracle datetime time plsql


【解决方案1】:

从 GMT 到 PDT,您可以使用 new_time。即

SELECT date_created, new_time(date_created, 'GMT', 'PDT') FROM gdpr;

确保 date_created 的数据类型为 DATE。

要减少分钟/秒并转换为 vc2,请使用 to_char 函数和 new_time() 的结果,即to_char(new_time(date_created, 'GMT', 'PDT'), 'DD.MM.YYYY HH24')

【讨论】:

    猜你喜欢
    • 2016-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-04
    • 1970-01-01
    • 1970-01-01
    • 2018-09-17
    • 2018-03-07
    相关资源
    最近更新 更多