Ну, на самом деле это не так сложно, вы просто проверяете буквально то, за чем вы хотите проверить.Просто убедитесь, что нет никаких записей, которые бы содержали ваши начальную и конечную даты между их собственной начальной и конечной датой.
Примерно так будет работать:
select *
from so_58088216 wrapping
where not exists (select *
from so_58088216 wrapped
where wrapping.start_date between wrapped.start_date and wrapped.end_date
and wrapping.end_date between wrapped.start_date and wrapped.end_date
-- don't check against yourself, this would be easier if had an ID or something
and wrapping.start_date != wrapped.start_date
and wrapping.end_date != wrapped.end_date)
Вот рабочий пример