之間記錄我有以下查詢將檢索作爲參數提供的開始日期和結束日期之間的事件:檢索日期
SELECT * FROM events
WHERE (startDate BETWEEN CAST(@start AS DATETIME) AND CAST(@end AS DATETIME)
OR endDate BETWEEN CAST(@start AS DATETIME) AND CAST(@end AS DATETIME))
這工作得很好,爲獲取重疊的開始和結束時間的事件,但將不會得到那些時代之間完全封裝的事件。一張圖片可能會使它變得清晰:
Event A
|------------------------------------------------------------------|
Event B
----------------------|------------|-------------------------------
Where | represents a start or end date
在我的照片,用我的查詢與開始和結束時間爲事件B,它不會檢索事件A
如何更改查詢以便顯示所有重疊和封裝的事件?
您可能還想考慮使用[half-open intervals](http://stackoverflow.com/a/16282246/634824) –