sql >> Database >  >> RDS >> PostgreSQL

Tsrange - Het verschil tussen twee bereiken berekenen

Je moet het bereik opsplitsen, van de documenten

Om dit te doen kun je lower , en bovenste

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. LAAD GEGEVENS LOKAAL INFILE stopt import bij 69.000 rijen

  2. Hoe XML-tags toe te voegen en te wijzigen in PHP

  3. Uitgaande verbindingen volgen

  4. SQL:een query onderbreken