Problems / Date Range Overlap / Editorial
room_id
r1.reservation_id < r2.reservation_id
[a, b)
[c, d)
a < d AND c < b
GREATEST(r1.check_in, r2.check_in)
LEAST(r1.check_out, r2.check_out)
DATEDIFF('day', overlap_start, overlap_end)
Interval overlap detection via self-join is fundamental in scheduling, booking, and resource allocation systems. The canonical overlap test start1 < end2 AND start2 < end1 is a pattern worth memorizing.
start1 < end2 AND start2 < end1
Solve Date Range Overlap yourself →