Для двух интервалов, таких как (s1, e1) и (s2, e2) с s1 & lt; e1 и s2 & lt; e2 Вы можете рассчитать перекрытие следующим образом:
SELECT
s1, e1, s2, e2,
ABS(e1-s1) as len1,
ABS(e2-s2) as len2,
GREATEST(LEAST(e1, e2) - GREATEST(s1, s2), 0)>0 as overlaps,
GREATEST(LEAST(e1, e2) - GREATEST(s1, s2), 0) as overlap_length
FROM test_intervals
Также будет работать, если один интервал в другом.