日付に関する部分的な情報を保存したい。年と月は知っているかもしれませんが、日はわかりません。私は日と月を知っているかもしれませんが、年は知りません。日付がオープンまたはクローズの間隔にあることを知っているかもしれません。このタイプのデータをモデル化するための私のオプションは何ですか?
私は過去に弁護士のためにこれをしました。 char(10)として保存されているISOスタイルの日付形式(yyyy-mm-dd)を使用しました。欠落している部分には疑問符が使用されています。
2002-01-?? -- some day in January 2002
199?-??-?? -- some day in the 1990s
????-01-08 -- January 8th in an unknown year
このような値は、データ入力を行う人々にとって直感的であり、かなり賢明にソートされ、フォーマットはCHECK制約で制御できます。日付と時刻の計算が失われますが、日付が不明な場合は、通常はそれほど重要ではありません。
日付がオープンまたはクローズの間隔にあることを知っているかもしれません。
これは実際には、たとえば4月1日に何かが起こったことを知っているが、どの年かはわからないということとは異なる種類の情報です。私の頭のてっぺんから、あなたは4つの列を格納できます。
そのような情報は、最初に述べた種類のデータとは別に保存する必要があると思います。 「未知の年の1月8日」は、オープンまたはクローズのいずれかの間隔で表すのが特に面倒です。
PostgreSQL(9.2)の最新リリースには、 範囲タイプ のサポートが含まれています。