Oracle
 sql >> Base de données >  >> RDS >> Oracle

Rechercher des enregistrements avec une plage de dates qui se chevauche dans SQL

la réponse précédente ne tient pas compte des situations où t2 est entièrement compris dans t1

select * from t t1
join t t2 on (t1.datefrom > t2.datefrom and t1.datefrom < t2.dateto  )
          or (t1.dateto   > t2.datefrom and t1.dateto   < t2.dateto  )
          or (t1.dateto   > t2.dateto   and t1.datefrom < t2.datefrom)