Oracle:TO_DATE 无法解析 TO_CHAR 的结果

Oracle: TO_DATE can not parse result of TO_CHAR

我尝试在 Oracle 12 上解析时间字符串。我认为问题是 TZH。

SQL> select to_char(current_timestamp, 'DD.MM.YYYY HH24:MI TZH') from dual;

TO_CHAR(CURRENT_TIME
--------------------
05.07.2018 16:55 +02

但反方向不起作用...

SQL> select TO_DATE('05.07.2018 16:53 +02', 'DD.MM.YYYY HH24:MI TZH') from dual;
select TO_DATE('05.07.2018 16:53 +02', 'DD.MM.YYYY HH24:MI TZH') from dual
                                       *
FEHLER in Zeile 1:
ORA-01821: Datumsformat nicht erkannt

格式不喜欢。如果我删除 +.

也不起作用

如评论中所述,TO_DATE 不适用于时区格式掩码。相反,使用 TO_TIMESTAMP_TZ,它接受这个:

SELECT TO_TIMESTAMP_TZ('05.07.2018 16:53 +02:00', 'DD.MM.YYYY HH24:MI TZH:TZM')
FROM dual;

Demo

这会引起混淆也就不足为奇了,因为我在网上看到的关于 TO_DATE 的大部分文档都提到了 TZHTZM 格式掩码,尽管它们会崩溃如果使用函数。