如何在日期后显示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/
致问候。。。