'dd-mm-yy'
がの場合、比較、挿入中に暗黙的にデータ型に変換されますが、算術演算では変換されません。内部変換が可能なのになぜsysdate-wouldd-mm-yyy 'が有効でないのですか?
sysdate>'01-01-17' //is valid
sysdate-'01-01-17' //is in valid
まず、演算子(+、 - 、..)は数値データ型のみであると仮定しました。後で私はこれらの演算子がDate Arithmeticでも使用され、Date
データ型のオペランドも有効であることを知っておく必要があります。
「算術演算の際に文字と文字以外のデータ型間の比較、Oracleは必要に応じて、数値、日付、またはROWIDに任意の文字データ型から変換」 - doc
をto_date
を使用することで問題を解決します。暗黙のうちに変換されていない理由を探しています。
私は暗黙の変換を許可しない同様の理由を想定していました。 –