複数の契約を含むテーブルがあり、各契約には次のように開始日と終了日があります。
| 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 |
私がやろうとしているのは、特定の期間にアクティブだった契約を取得するクエリを作成することです。したがって、開始日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'
ただし、これは機能しません。レコードは取得されません。私は何を間違っていますか?