私はこのようなmysqlテーブルを持っています:
| ID | ID_period | date_start | date_end |
| 1 | 1 | 0000-07-01 | 0000-08-31 |
| 2 | 2 | 0000-09-01 | 0000-10-30 |
| 3 | 3 | 0000-11-01 | 0000-12-28 |
| 4 | 4 | 0000-11-01 | 0000-03-31 |
この期間0000/07/14-0000/08/25の間に含まれるIDを選択するにはどうすればよいですか?
date_start列とdate_end列はDATE形式です。
問題は、0000-12-12から0000-01-25までの期間(含まれ、交差する)を検索すると、選択から0レコードを取得することです。これは、「0000」である年を推測します。 。どうすれば修正できますか?
もう1つの問題は、11-01から12-31のような期間を検索すると、結果が0になることです。date_endの12月の最終日は28ですが、11-01から12-31の期間を検索すると、すべてのレコードを含めたいので、id=3とid=4のレコードを取得したいと思います。
現時点では、次のクエリを使用しています。
SELECT ... WHERE '12' BETWEEN MONTH(date_start) and MONTH(date_end)
AND '15' BETWEEN DAY(date_start) and DAY(date_end)
AND '03' BETWEEN MONTH(date_start) and MONTH(date_end)
AND '28' BETWEEN DAY(date_start) and DAY(date_end)