【问题标题】:Need to convert any timezone to GMT time zone in oracle需要在 oracle 中将任何时区转换为 GMT 时区
【发布时间】:2025-12-20 22:55:11
【问题描述】:

查询条件如下:

creation_date >=last_success_run_date

此处的创建日期类似于某个时间 PDT(太平洋夏令时间)或某个时间 PST(太平洋标准时间)格式。

并且 last_success_run_date 始终是 GMT 格式。

所以,我想知道是否有任何可用的 oracle 函数可以将任何时区格式转换为 GMT 时区格式。

【问题讨论】:

    标签: sql oracle plsql plsql-package


    【解决方案1】:

    试试这个:

    FROM_TZ(creation_date, 'America/Los_Angeles') AT TIME ZONE 'UTC'
    

    SYS_EXTRACT_UTC(FROM_TZ(creation_date, 'America/Los_Angeles'))
    

    如果creation_dateDATE 而不是TIMESTAMP 数据类型,那么您必须使用CAST(creation_date AS TIMESTAMP),因为FROM_TZ 仅接受TIMESTAMP 数据类型作为输入值。

    【讨论】:

      【解决方案2】:

      使用new_time()函数将timezone1中的日期转换为timezone2中的日期。

      NEW_TIME(date, timezone1, timezone2)
      
      NEW_TIME(date, 'PDT', 'GMT')
      

      【讨论】:

      • 我们不能在这里使用 new_time 函数,因为我们不知道时间格式是 PST 还是 PDT
      • @send that in parameter
      最近更新 更多