[英]How convert time in query and add time zone - date format not recognized
我需要将时区添加到 Oracle SQL 查询返回的内容中。
SELECT
mw.appdate APPDATE
FROM
mwo mw
这将返回:
APPDATE
23-SEP-2021 00:00:00
我正在查看ISO-8601 select to_char ,但我不确定如何将其应用于我的查询结果。
SELECT
to_char(mw.appdate, 'YYYY-MM-DD"T"hh24:mi:sstzh:tze') APPDATE,
FROM
mwo mw
error:
ORA-01821: date format not recognized
01821. 00000 - "date format not recognized"
*Cause:
*Action:
我不太熟悉格式化日期。 我如何格式化它以添加时区(东部标准时间)。
我试过
SELECT
to_char(mw.appdate, 'YYYY-MM-DD"T"hh24:mi:sstzh:est') APPDATE
FROM
mwo mw
并返回此错误:
ORA-01821: date format not recognized
01821. 00000 - "date format not recognized"
*Cause:
*Action:
我试过
mw.appdate, 'YYYY-MM-DD"T"hh24:mi:sstzh:est' APPDATE
它添加了一个名为 APPDATE_1 的列,其中确实包含以下字符串: YYYY-MM-DD"T"hh24:mi:sstzh:est
更新:我想让查询返回重新格式化的日期。 我无法重新插入数据库。 我正在尝试像下面的答案一样,但它仍然出错。
SELECT
mw.account ACCT,
mw.wono WO,
to_char(mw.appdate, 'YYYY-MM-DD"T"HH24:MI:SSTZH:TZM') AS APPDATE
FROM
mwo mw
错误:
ORA-01821: date format not recognized
01821. 00000 - "date format not recognized"
*Cause:
*Action:
假设您的列是TIMESTAMP WITH TIME ZONE
数据类型并且已经处于东部标准时间,那么您需要格式 model TZM
(不是TZE
):
SELECT TO_CHAR(
appdate,
'YYYY-MM-DD"T"HH24:MI:SSTZH:TZM'
) AS APPDATE
FROM mwo;
然后对于示例数据:
CREATE TABLE mwo (appdate TIMESTAMP WITH TIME ZONE);
INSERT INTO mwo(appdate) VALUES (TIMESTAMP '2021-09-28 01:23:45.123456789 EST');
output 是:
申请日期 2021-09-28T01:23:45-05:00
db<> 在这里摆弄
您需要将DATE
转换为TIMESTAMP
,然后您可以附加时区,最后您可以格式化 output:
SELECT
to_char(
FROM_TZ(CAST(mw.appdate AS TIMESTAMP), 'EST5EDT'),
'YYYY-MM-DD"T"hh24:mi:sstzh:tzm'
) AS APPDATE
FROM mw
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.