Oracleで、YYYYMMDD文字列と日付型を比較すると一致すると判定される

oracleで以下SQLは、レコードが1件戻ってくる。

select * from DUAL where '20181201' = to_date('2018/12/01', 'yyyy/mm/dd');

つまり、'20181211'という文字列型の値と2018/12/11という日付型の値が等しいという条件が真と判定される。
……なんなんだ、この謎の仕様。



YYYYMMDD文字列に存在しない日付に該当する値を指定すると「ORA-01861: リテラルが書式文字列と一致しません」エラーが発生する。

select * from dual where '20181301' = to_date('2018/12/01', 'yyyy/mm/dd');

YYYYMMDD数値と比較すると「ORA-00932: データ型が一致しません: NUMBERが予想されましたがDATEです」エラーが発生する。

select * from DUAL where 20181201 = to_date('2018/12/01', 'yyyy/mm/dd');