質問: いろんなシステムを見てきてDBのテーブルに格納する日付項目に対して型がVARCHAR2やDATEであったりするのですが、どう使い分けているのでしょうか。 VARCHAR2であることのメリット、DATE型にすることのメリットなど何かあるのでしょうか。
回答: 日付型が提供されているなら、日付型を使うのがベストと考えます。文字列型での格納はパフォーマンスでもデメリットが大きいです。大小関係の比較などについては、インデックスも使われません。経過日数を計算するような関数が提供されていても、前段で型変換をおこなう必要が生じます。 文字列型で格納するメリットは殆どありません。無理に上げるなら移植性の高さです。データベースが異なれば、日付型でも有効桁数や格納可能な範囲など、随分と扱いが異なります。また文字列型ならロケールの設定によって挙動が異なると言った事もありません。異なるデータベース間での互換性を重視して最小公約数的な機能しか使わないという制約下なら、文字列型格納するメリットもあるでしょう。