Mam dwie tabele, obie z polami czasu rozpoczęcia i czasu zakończenia. Muszę znaleźć, dla każdego wiersza w pierwszej tabeli, wszystkie wiersze w drugiej tabeli, w których przecinają się interwały czasowe.Co to jest prosty i skuteczny sposób na znalezienie wierszy z nakładającymi się odstępami czasu w SQL?
Na przykład:
<-----row 1 interval------->
<---find this--> <--and this--> <--and this-->
Proszę fraza odpowiedź w postaci SQL WHERE
-clause i rozważyć przypadek, gdy czas zakończenia w drugiej tabeli mogą być NULL
.
Platformą docelową jest SQL Server 2005, ale mogą być również interesujące rozwiązania z innych platform.
możliwy duplikat [Ustal, czy dwa zakresy dat pokrywają się] (http://stackoverflow.com/questions/325933/determine-whether-two-date-ranges-overlap) –
Przypuszczalnie, jeśli czas zakończenia w drugiej tabeli jest NULL, należy go traktować jako "okres nie ma końca i trwa w przyszłości". Tak właśnie działa zaakceptowana odpowiedź; jest to powszechna interpretacja, ale nie jest to jedyna możliwa interpretacja. –