如何在Oracle SQL中的日期和时间之后显示CST或CDT?



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

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

谢谢。

TIMESTAMP WITH TIME ZONE数据类型TIMESTAMP '2022-09-09 22:30:32 US/CENTRAL'开始,然后使用TO_CHAR和格式模型'Mon DD YYYY HH12:MI:SS AM TZD':对其进行格式化

SELECT TO_CHAR(
TIMESTAMP '2022-09-09 22:30:32 US/CENTRAL',
'Mon DD YYYY HH12:MI:SS AM TZD',
'NLS_DATE_LANGUAGE=American'
) AS ts
FROM   DUAL;

哪个输出:

TS
2022年9月9日上午10:30:32 CDT

试试这样的。。。

SELECT 
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 ') ||
CASE To_Char(To_TimeStamp_TZ(To_Char(SYSDATE, 'Mon dd yyyy hh24:mi:ss'), 'Mon dd yyyy hh24:mi:ss ' || 'TZH:TZM'), 'TZH:TZM') 
WHEN '-05:00' THEN  'CDT'
WHEN '-06:00' THEN  'CST'
-- ... ...
WHEN '+01:00' THEN  'CET'
WHEN '+02:00' THEN  '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

有关To_TimeStamp_TZ((函数的详细信息,请访问:https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions194.htm

时区定义位于:https://greenwichmeantime.com/time-zone/definition/
致问候。。。

最新更新