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

Tsrange - Menghitung perbedaan antara dua rentang

Anda harus memisahkan rentang, dari dokumen

Untuk melakukan ini, Anda dapat menggunakan lower , dan upper

SELECT tsrange(  lower(freetime), lower(appointment)  )  AS before_appointment,
       tsrange(  upper(appointment), upper(freetime)  )  AS after_appointment
FROM ( VALUES
  (
    '[2017-04-19 09:00, 2017-04-19 12:30)'::tsrange,
    '[2017-04-19 10:30, 2017-04-19 11:30)'::tsrange
  )
) AS t(freetime,appointment)
WHERE freetime @> appointment;

              before_appointment               |               after_appointment               
-----------------------------------------------+-----------------------------------------------
 ["2017-04-19 09:00:00","2017-04-19 10:30:00") | ["2017-04-19 11:30:00","2017-04-19 12:30:00")
(1 row)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Instalasi PostgreSQL Ketersediaan Tinggi Patroni

  2. Kembalinya XFS di Linux

  3. Formulir Django ke basis data kueri (model)

  4. Kekurangan tabel dengan terlalu banyak kolom

  5. Ganti karakter unicode di PostgreSQL