И в чем проблема? Взяли бы бумажку и нарисовали все возможные случаи. Я, если правильно вас понял, думаю что их 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;