簡體   English   中英

在日期重疊之間使用mysql進行預訂

[英]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-202017-07-24

start date均不得大於或等於2017-07-21end date也不得小於或等於2017-07-23 這就是為什么結果為false ,這是正確的。

因此,與其between ,嘗試:

WHERE 'user_inputdate_1' <= `enddate`
OR 'user_inputdate_2' => `startdate`;

編輯:缺少等於=

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM