sql >> Database teknologi >  >> RDS >> PostgreSQL

Tsrange - Beregning af forskellen mellem to områder

Du bliver nødt til at adskille rækkevidden fra dokumenterne a>

For at gøre dette kan du bruge lower , og 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. JDBC PreparedStatement - Er det muligt at bruge det samme argument?

  2. Lagring af enkelte anførselstegn i varchar variabel SQL Server 2008

  3. Indsættelse af SQL Server-data i Salesforce med en markør

  4. Sådan bruger du mange LIKE-operatorer og bruger indeks