Tôi có hai bảng, cả hai đều có trường thời gian bắt đầu và thời gian kết thúc. Tôi cần phải tìm, cho mỗi hàng trong bảng đầu tiên, tất cả các hàng trong bảng thứ hai, nơi các khoảng thời gian giao nhau.Cách đơn giản và hiệu quả để tìm các hàng có chồng chéo theo thời gian trong SQL là gì?
Ví dụ:
<-----row 1 interval------->
<---find this--> <--and this--> <--and this-->
Hãy cụm từ câu trả lời của bạn trong hình thức của một SQL WHERE
-clause, và xem xét các trường hợp thời gian kết thúc trong bảng thứ hai có thể NULL
.
Nền tảng đích là SQL Server 2005, nhưng các giải pháp từ các nền tảng khác cũng có thể được quan tâm.
bản sao có thể có của [Xác định xem có hai phạm vi ngày chồng chéo] (http://stackoverflow.com/questions/325933/determine-whether-two-date-ranges-overlap) –
Có lẽ, nếu thời gian kết thúc trong bảng thứ hai là NULL, nó phải được coi là 'chu kỳ không có thời gian kết thúc và tiếp tục trong tương lai'. Đó là câu trả lời được chấp nhận; nó là một cách giải thích thông thường, nhưng nó không phải là giải thích duy nhất có thể. –