【问题标题】:How to display CST or CDT after the date & time in Oracle SQL?如何在 Oracle SQL 中的日期和时间之后显示 CST 或 CDT?
【发布时间】:2022-10-14 01:24:23
【问题描述】:

如何在日期和时间之后显示 CST 或 CDT,如下所示。

2022 年 9 月 9 日晚上 10:30:32 CDT

谢谢。

【问题讨论】:

  • 您的列是否定义为timestamptimestamp with timezone
  • 它是 Oracle 表中的 DATE 列。所以它确实有时间戳。
  • 我总是忘记,对于 Oracle,DATE 意味着日期和时间。无论如何,它不支持时区。
  • 哦好的。感谢您尝试我的帮助。最欣赏。
  • 你看过函数 sessiontimezone 和 dbtimezone 吗?

标签: sql oracle


【解决方案1】:

尝试这样的事情......

SELECT 
  CASE 
      WHEN To_Char(To_TimeStamp_TZ(To_Char(SYSDATE, 'Mon dd yyyy hh24:mi:ss'), 'Mon dd yyyy hh24:mi:ss ' || 'TZH:TZM'), 'TZH:TZM') = '-05:00'
      THEN To_Char(To_TimeStamp_TZ(To_Char(SYSDATE, 'Mon dd yyyy hh24:mi:ss'), 'Mon dd yyyy hh24:mi:ss ' || 'TZH:TZM'), 'Mon dd yyyy hh24:mi:ss ') || 'CDT'
      
      WHEN To_Char(To_TimeStamp_TZ(To_Char(SYSDATE, 'Mon dd yyyy hh24:mi:ss'), 'Mon dd yyyy hh24:mi:ss ' || 'TZH:TZM'), 'TZH:TZM') = '-06:00'
      THEN To_Char(To_TimeStamp_TZ(To_Char(SYSDATE, 'Mon dd yyyy hh24:mi:ss'), 'Mon dd yyyy hh24:mi:ss ' || 'TZH:TZM'), 'Mon dd yyyy hh24:mi:ss ') || 'CST'
      -- ... ...
      WHEN To_Char(To_TimeStamp_TZ(To_Char(SYSDATE, 'Mon dd yyyy hh24:mi:ss'), 'Mon dd yyyy hh24:mi:ss ' || 'TZH:TZM'), 'TZH:TZM') = '+01:00'
      THEN To_Char(To_TimeStamp_TZ(To_Char(SYSDATE, 'Mon dd yyyy hh24:mi:ss'), 'Mon dd yyyy hh24:mi:ss ' || 'TZH:TZM'), 'Mon dd yyyy hh24:mi:ss ') || 'CET'
      
      WHEN To_Char(To_TimeStamp_TZ(To_Char(SYSDATE, 'Mon dd yyyy hh24:mi:ss'), 'Mon dd yyyy hh24:mi:ss ' || 'TZH:TZM'), 'TZH:TZM') = '+02:00'
      THEN To_Char(To_TimeStamp_TZ(To_Char(SYSDATE, 'Mon dd yyyy hh24:mi:ss'), 'Mon dd yyyy hh24:mi:ss ' || 'TZH:TZM'), 'Mon dd yyyy hh24:mi:ss ') || 'EET'
      -- ... ... ...
  ELSE
      To_Char(To_TimeStamp_TZ(To_Char(SYSDATE, 'Mon dd yyyy hh24:mi:ss'), 'Mon dd yyyy hh24:mi:ss ' || 'TZH:TZM'), 'Mon dd yyyy hh24:mi:ss TZH:TZM')
  END "DTM"
FROM DUAL

....在我的情况下结果为

--  DTM                       
--  ---------------------------
--  Oct 13 2022 19:19:03 EET  

...或者如果我从案例表达式中排除 WHEN ... = '+02:00' (将结果强制到 ELSE 部分)

--  DTM                       
--  ---------------------------
--  Oct 13 2022 19:22:07 +02:00

【讨论】:

    猜你喜欢
    • 2016-07-29
    • 2018-05-25
    • 2019-04-24
    • 1970-01-01
    • 2018-02-20
    • 2011-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多