[英]Using mysql between for date overlap for booking purpose
我正在使用mysql BETWEEN
語句查找日期之間的重疊。它返回了很好的結果。 但我仍然希望解決一些問題。謝謝。
這是我要測試的數據庫
booking_id |venue_id |startdate | enddate 1001 |3 | 2017-07-21 |2017-07-23
這是我的查詢; 我的概念是命中查詢的日期之一,因此它將返回true。所以我正在使用OR進行測試。
SELECT * FROM `booking` WHERE ('user_inputdate_1' BETWEEN startdate AND enddate) OR ('user_inputdate_2' BETWEEN startdate AND enddate)'
我的測試結果
user_inputdate_1 user_inputdate_2 Result 2017-07-19 2017-07-23 true 2017-07-22 2017-07-24 true 2017-07-21 2017-07-24 true 2017-07-20 2017-07-24 false => this is the problem (it should be true)
PS:如果還有其他解決方法,我會接受的。 我一直在嘗試很多查詢,但是它們對我沒有用。
最后,感謝您的努力。
對於給定的輸入日期:
2017-07-20
和2017-07-24
start date
均不得大於或等於2017-07-21
, end date
也不得小於或等於2017-07-23
。 這就是為什么結果為false
,這是正確的。
因此,與其between
,嘗試:
WHERE 'user_inputdate_1' <= `enddate`
OR 'user_inputdate_2' => `startdate`;
編輯:缺少等於=
號
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.