[英]MySQL get records between / over above two date variables
我有一個MySQL問題。 我在下面的示例中使用Laravel,但我的問題與MySQL有關。
假設我有一個約會表。 約會可以是任何持續時間。
所以我有2個約會。
所以; 如果II在3月1日至2日之間搜索記錄-我將獲得2個結果。 例如“日期<= 3月1日和<= 3月2日”
不要介意該命令-它只是一個例子。
我的底線是,如果我搜索3月1日至2日之間的記錄,則會得到兩次約會。
我的問題不過; 如果我從4月29日至3月4日有活動怎么辦?
舉個例子;
因此,如果我有兩個約會,並且說“日期> = 2019-03-01和<= 2019-03-02”,那么我仍然會獲得約會A和約會B。
但實際上,由於任命C,該空間將被占用
我如何仍可以搜索兩個日期變量之間的記錄-但也可以找到約會C?
因此,基本上,在繪制/編譯日歷時,我將擁有日歷表並看到約會A和約會B-但我也應該將約會C視為全天活動。
我不想從數據庫中選擇所有約會記錄並對它們進行排序-我希望有一個更好的解決方案。
假設我們必須找到在t1和t2之間發生的事件。 例如,我們的事件跨越a1和a2,b1和b2以及c1和c2。
根據您所說的,下一個公式將滿足您的要求:
SELECT * FROM some_table WHERE (start_date < t1 AND end_date > t1) OR (start_date >= t1 AND start_date < t2)
這里t1
和t2
是請求范圍的邊界, start_date
和end_date
是在MySQL中存儲相應數據的列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.