我有一个这样的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”。 . 我该如何解决?
另一个问题是,如果我搜索 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)