我一个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 ?
date_start和date_end列是DATE格式。
问题是,如果我搜索一个时期(包括和相交),即:从0000-12-12到0000-01-25我从选择0记录,我猜是今年'0000'..我该如何解决它?
另一个问题是,如果我搜索一个像11-01到12-31这样的时期,我得到了0个结果..因为最后一天od_date在date_end是28 ..但是如果我搜索一个时期11-01到12 -31是因为我希望所有的记录,包括..所以我想获得具有记录id = 3,ID = 4
目前IM使用以下查询:
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)
您是指所有与该时期重叠或完全包含在该时期内的IDS?在你的例子中,这似乎并不重要,但可能在你的真实数据中。 –
“包含”是什么意思?完全在或相交? –
问题是,如果我搜索一个时期(包括和相交),即:从0000-12-12到0000-01-25我从选择0记录,我猜是'0000' ..我如何解决它? – Luke