Overlaps in PostgreSQL

Posted on by By Sohail, in Databases | 0

Usually, we get to pass a date between two different dates eg. To find Employees Active in a company we can say current_date between the effectivedate and end date, this will return effectivedates that match the above condition.

But what if instead of the current date we have a date range, Postgres does offer a Time/Date function called Overlaps which can check if 2 date range OVERLAPs.

I can explain further with the set of example:

Code:

With SampleTable as(
SELECT 'Sohail'    as Name, '2001-10-30'::Date as  effectivedate, '2002-10-30'::Date as enddate
Union
SELECT 'Izebhijie' as Name, '2001-05-27'::Date as  effectivedate, '2001-10-30'::Date as enddate
Union
SELECT 'Is'        as Name, '2001-10-30'::Date as  effectivedate, '2001-10-31'::Date as enddate
Union
SELECT 'A Good Boy'   as Name, '2001-10-30'::Date as  effectivedate, '2001-10-31'::Date as enddate
)
Select * from SampleTable
where 
--(DATE '2001-02-16', DATE '2001-12-21')   OVERLAPS (effectivedate, enddate)
/*4 Rows Because the above-fixed dates overlap the effective and  enddate*/
--(DATE '2001-02-16', INTERVAL '100 days') OVERLAPS (effectivedate, enddate)
/*0 Rows because the Fixed date doesn't fall between the effective and enddate*/
--(DATE '2001-10-29', DATE '2001-10-30')   OVERLAPS (effectivedate, enddate)
/*1 Row because the Fixed Date Last Date is not equal to the Effective date*/
--(DATE '2001-10-30', DATE '2001-10-30') OVERLAPS (effectivedate, enddate)
/*3 Rows because (DATE '2001-10-30', DATE '2001-10-30') is considered as one date and it should overlap between 2 dates.


	
logo

Best Open Source Business Intelligence Software Helical Insight is Here

logo

A Business Intelligence Framework

The reason the Izebhijie Row is not picked is because both the enddates(endpoint) match which then returns false*/

Feel Free to drop a comment below if you got doubts

Thanks
Sohail Izebhijie
Helical IT Solutions Pvt Ltd

0 0 votes
Article Rating
Subscribe
Notify of
0 Comments
Inline Feedbacks
View all comments