sql >> Databáze >  >> RDS >> PostgreSQL

Tsrange - Výpočet rozdílu mezi dvěma rozsahy

Budete muset rozdělit rozsah od dokumentů

Chcete-li to provést, můžete použít lower a 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. chyba při změně tabulky, přidání omezení cizího klíče získání chyby Nelze přidat nebo aktualizovat podřízený řádek

  2. Vícenásobné vložení SQL Oracle

  3. Cyklus zjištěn při provádění rekurzivního dotazu

  4. Ionic framework a php mysql