我有一个包含几个合约表,每个合约都有一个开始日期和结束日期,就像这样:检索中的特定日期范围内发生的所有记录在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