我一個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