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

Mengapa rentang atas postgres berfungsi untuk rentang tanggal mengembalikan batas eksklusif?

Kembali Pertanyaan #1 :tertutup-terbuka adalah cara standar untuk menangani rentang tanggal, dengan 20-25 tahun sejarah dalam literatur akademis. Lihat hal. 24-25 dari Data Bittemporal oleh Tom Johnston, dan juga Mengembangkan Aplikasi Database Berorientasi Waktu di SQL oleh Richard Snodgrass.

Tapi saya pikir salah satu alasannya adalah rentang berurutan tidak tumpang tindih. Jika a adalah [May2016, Jun2016) dan b adalah [Jun2016, Jul2016) , mereka tidak berbagi hari apa pun. Jadi mereka "bersama", dan Anda tidak perlu khawatir tentang kasus tepi di mana mereka bersentuhan.

Perhatikan bahwa satu kelemahan (mungkin) dari tertutup-terbuka adalah Anda tidak dapat menentukan rentang kosong. [May2016, May2016) hanyalah kontradiksi diri, sedangkan [May2016, May2016] adalah sekejap.

Kembali Pertanyaan #2 :Sekali lagi itu bisa saja berbeda, tetapi saya dapat memikirkan beberapa keuntungan dari membuat upper([May2016, Jun2016)) kembalikan Jun2016 :

  • Ini mengembalikan hal yang sama terlepas dari resolusi rentang.
  • Ini lebih seperti arti matematis dari titik akhir terbuka, di mana itu adalah satu-satunya kemungkinan jawaban.
  • Ini mengembalikan apa yang cocok dengan "label", jadi bisa dibilang kurang mengejutkan.
  • Ini memungkinkan Anda dengan mudah melihat apakah dua rentang "bertemu":upper(a) = lower(b) .

Juga, perhatikan bahwa di Postgres semua tipe data terkait waktu bersifat diskrit. Dulu ada opsi untuk mengkompilasi Postgres dengan stempel waktu berbasis float, tetapi sudah tidak digunakan lagi dan saya belum pernah menemukannya.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lebih Banyak SQL, Lebih Sedikit Kode, Dengan PostgreSQL

  2. Bagaimana cara mengubah tipe jsonb PostgreSQL 9.4 menjadi float

  3. Bagaimana cara mendapatkan perintah postgres 'nth_value' yang setara di pyspark Hive SQL?

  4. bagaimana cara menjalankan skrip .sql di heroku?

  5. Ekspor baris tertentu dari tabel PostgreSQL sebagai skrip INSERT SQL