我有一個包含幾個合約表,每個合約都有一個開始日期和結束日期,就像這樣:檢索中的特定日期範圍內發生的所有記錄在MySQL
| ID | Contract Name | Start Date | End Date |
|-------|-------------------|--------------|------------|
| 1 | Joe Bloggs | 2012-01-01 | 2012-02-05 |
| 2 | John Smiths | 2012-02-01 | 2012-02-20 |
| 3 | Johnny Briggs | 2012-03-01 | 2012-03-20 |
什麼我想do是建立一個查詢,它將檢索在特定時間段內處於活動狀態的合同。所以,如果我有2012-02-10
開始日期和2012-03-21
結束日期,我應該有顯示如下合同:
| ID | Contract Name | Start Date | End Date |
|-------|-------------------|--------------|------------|
| 2 | John Smiths | 2012-02-01 | 2012-02-20 |
| 3 | Johnny Briggs | 2012-03-01 | 2012-03-20 |
我的思想的問題是,我不知道如何建立查詢,以做到這一點。這是我到目前爲止:
SELECT *
FROM contracts c
WHERE c.startdate BETWEEN '2012-02-10'
AND '2012-03-21'
AND c.enddate BETWEEN '2012-02-10'
AND '2012-03-21'
雖然這不工作,沒有記錄檢索。我究竟做錯了什麼?
ID = 2開始日期在您搜索的開始日期之前。 – JoDev 2013-03-20 10:41:41