PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana cara merepresentasikan tanggal dengan ketidakpastian di PostgreSQL

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.)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL Hosting Terkelola Sepenuhnya di AWS dan Azure Diluncurkan Tepat Waktu Untuk Migrasi Lama

  2. Apache Spark:Koneksi JDBC tidak berfungsi

  3. Postgresql dan jsonb - memasukkan kunci/nilai ke dalam array multi-level

  4. Perbarui catatan yang memenuhi kondisi dengan angka yang bertambah

  5. Ubah string hex menjadi bigint di Postgres