Ada beberapa cara berbeda untuk mendekati tanggal fuzzy. Di PostgreSQL, Anda dapat menggunakan
- sepasang kolom tanggal (tanggal_kemungkinan_awal, tanggal_kemungkinan_terakhir),
- kolom tanggal dan kolom presisi ('01-01-2012', 'tahun'), atau
- a tipe data rentang (rentang tanggal), atau
- a varchar ('2013-01-2?', '2013-??-05'), atau
- tabel atau tabel lain dengan salah satu tipe data tersebut.
Tipe data range khas untuk PostgreSQL versi terbaru. Anda dapat menggunakan yang lain dalam dbm SQL apa pun.
Jenis ketidakjelasan yang Anda butuhkan bergantung pada aplikasi. Cara Anda mengkueri tanggal fuzzy bergantung pada tipe data atau struktur yang Anda pilih. Anda perlu memahami dengan kuat jenis ketidakjelasan apa yang perlu Anda simpan, dan jenis pertanyaan yang perlu dijawab oleh pengguna Anda. Dan Anda perlu menguji untuk memastikan database Anda dapat menjawab pertanyaan mereka.
Misalnya, dalam sistem hukum tanggal mungkin diingat dengan buruk atau dirusak. Seseorang mungkin berkata, "Saat itu sekitar hari Kamis di bulan Januari 2014. Saya tahu saat itu hari Kamis, karena hari itu adalah hari pengambilan sampah", atau "Itu adalah minggu pertama di bulan Juni atau Juli tahun lalu". Untuk merekam ketidakjelasan semacam itu, Anda memerlukan tabel lain.
Atau cap pos mungkin dirusak sehingga Anda hanya dapat membaca "14, 2014". Anda tahu itu cap pos pada tanggal 14, tetapi Anda tidak tahu bulan apa. Sekali lagi, Anda membutuhkan meja lain.
Beberapa (semua?) Ini tidak akan memberi Anda logika tiga nilai kecuali Anda melompati beberapa rintangan. ("Kemungkinan" bukan nilai Boolean yang valid.)