И в чем проблема? Взяли бы бумажку и нарисовали все возможные случаи. Я, если правильно вас понял, думаю что их 4.
Допустим у вас есть временной интервал START_DATE и END_DATE и вам нужно его сравнить на пересечение с отрезками в БД FROM и TO.
Ок.
Первый случай: START_DATE <= FROM < END_DATE <=TO
Второй случай: START_DATE <= FROM < TO <= END_DATE
Третий случай: FROM <=START_DATE <= TO < END_DATE
Четвертый случай: FROM <= START_DATE < END_DATE <=TO
Ну то есть два случая когда отрезки именно что пересекаются концами и два случая, когда один отрезок включает другой полностью.
Ну и тогда запросы выглядит интуитивно понятным.
Или еще можно рассуждать так, чтобы два отрезка пересекались, необходимо и достаточно, чтобы любой из концов одного отрезка лежал между двумя концами второго отрезка.
SELECT * FROM <TABLE> T WHERE
<START_DATE> BETWEEN T.FROM AND T.TO OR
<END_DATE> BETWEEN T.FROM AND T.TO OR
T.FROM BETWEEN <START_DATE> AND <END_DATE> OR
T.TO BETWEEN <START_DATE> AND <END_DATE> OR;