如何在日期和时间后显示CST或CDT,如下所示。CDT时间2022年9月9日下午10:30:32
2w3rbyxf1#
从TIMESTAMP '2022-09-09 22:30:32 US/CENTRAL'数据类型TIMESTAMP WITH TIME ZONE开始,然后使用TO_CHAR和格式模型'Mon DD YYYY HH12:MI:SS AM TZD'对其进行格式化:
TIMESTAMP '2022-09-09 22:30:32 US/CENTRAL'
TIMESTAMP WITH TIME ZONE
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;
输出:| 技术支持|| - -|| CDT时间2022年9月9日下午10:30:32|如果您有一个DATE,则将其转换为时间戳,并使用FROM_TZ为它指定US/CENTRAL时区,然后将其转换为字符串,如下所示:
DATE
FROM_TZ
US/CENTRAL
SELECT TO_CHAR( FROM_TZ( CAST( DATE '2022-09-09' + INTERVAL '22:30:32' HOUR TO SECOND AS TIMESTAMP ), 'US/CENTRAL' ), 'Mon DD YYYY HH12:MI:SS AM TZD', 'NLS_DATE_LANGUAGE=American' ) AS ts FROM DUAL;
它还输出:| 技术支持|| - -|| CDT时间2022年9月9日下午10:30:32|fiddle
u0njafvf2#
试试这样的...
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
... OR如果我从case表达式中排除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/此致。
2条答案
按热度按时间2w3rbyxf1#
从
TIMESTAMP '2022-09-09 22:30:32 US/CENTRAL'
数据类型TIMESTAMP WITH TIME ZONE
开始,然后使用TO_CHAR
和格式模型'Mon DD YYYY HH12:MI:SS AM TZD'
对其进行格式化:输出:
| 技术支持|
| - -|
| CDT时间2022年9月9日下午10:30:32|
如果您有一个
DATE
,则将其转换为时间戳,并使用FROM_TZ
为它指定US/CENTRAL
时区,然后将其转换为字符串,如下所示:它还输出:
| 技术支持|
| - -|
| CDT时间2022年9月9日下午10:30:32|
fiddle
u0njafvf2#
试试这样的...
....在我的情况下,结果是
... OR如果我从case表达式中排除WHEN '+02:00'(强制结果到ELSE部分)
有关To_TimeStamp_TZ()函数的更多信息,请访问:https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions194.htm
时区定义位于:https://greenwichmeantime.com/time-zone/definition/
此致。