J'ai deux tables, à la fois avec des champs de début et de fin. J'ai besoin de trouver, pour chaque ligne du premier tableau, toutes les lignes de la deuxième table où les intervalles de temps se croisent.Qu'est-ce qu'un moyen simple et efficace de trouver des lignes avec des chevauchements d'intervalles de temps dans SQL?
Par exemple:
<-----row 1 interval------->
<---find this--> <--and this--> <--and this-->
phrase S'il vous plaît votre réponse sous la forme d'un SQL WHERE
-clause, et considérer le cas où peut être NULL
la fin des temps dans la deuxième table.
La plate-forme cible est SQL Server 2005, mais les solutions d'autres plates-formes peuvent également vous intéresser.
duplication possible de [Déterminer si deux plages de dates se chevauchent] (http://stackoverflow.com/questions/325933/determine-whether-two-date-ranges-overlap) –
On peut supposer que si l'heure de fin dans la deuxième table est NULL, il devrait être traité comme «la période n'a pas de fin et continue dans le futur». C'est ce que la réponse acceptée fait; c'est une interprétation commune, mais ce n'est pas la seule interprétation possible. –