テーブル設計をする上で日付項目のデータ型は、何にしますか?
登録日時や更新日時のようにタイムスタンプとして
時分秒ミリ秒まで格納しなければいけない場合は、
皆さんもDATE型にすると思います。
単に年月日だけを格納する場合の日付項目のデータ型が、
システムによりマチマチに感じます。
数値型は論外として、DATE型と文字型のメリットを上げますと
DATE型
日付として正しくない値は格納できない。
日付の演算(1月後など)や算出(月末日を求めるなど)が容易。
文字型
日付の年、月、日の取得が容易。
どちらも関数を1つ入れればいい話で、プログラマ的にはどちらでも
同じだと思います。
しかし、日付の範囲指定など
where DATE_COL between to_date('2005/01/01', 'YYYY/MM/DD')
and to_date('2005/05/31', 'YYYY/MM/DD') ;
とするのと、
where CHAR_COL between '20050101' and '20050531' ;
とするので、どちらが楽なのかなぁ?と考えてしまいます。
皆さんはどう思われますか?
コメント (2)
日付であればDATE型
年月、や日だけなどであれば
CHARであるべきでしょう。 プログラム開発の
難易度もさることながら、RDBとしての資産価値を
お客様のために考えましょう。
投稿者: 杉山 | 2005年3月31日 23:46
日付であればDATE型
年月、や日だけなどであれば
CHARであるべきでしょう。 プログラム開発の
難易度もさることながら、お客様のためにRDBとしての資産価値を考えましょう。
投稿者: 杉山 | 2005年3月31日 23:47