[英]Booking query does not consider arrival and departure day
我一直在尋找這個難題的答案,但一無所獲。 我希望您能幫助找出我做錯了什么。
我有一個mysql查詢,它僅選擇可用的如下方法:
SELECT *
FROM apartments
WHERE apartment_ID NOT IN (SELECT apartment_ID
FROM bookings
WHERE startDate <= '$endingdate'
AND endDate >= '$startingdate')
問題在於此查詢未考慮出發日期為半天並且可用。
為了更好地解釋:
如果表“ booking”的預訂在2011年1月16日結束,而搜索是從16年1月16日開始。 該公寓應該可用,因為那是“半天”(出發當天)。 查詢似乎不考慮這一點,並且不顯示公寓。
請你能幫忙嗎?
弗朗切斯科
我不太熟悉MySQL數據類型,但是您確定startDate和endDate也不會與時間部分一起存儲。 如果真是這樣,那么“ 16-01-2011 16:25”將不會小於或等於“ 16-01-2011”。
從子查詢中刪除=符號;如果在該日期始終有空缺,則至少刪除最后一個。 那應該檢查在要求的日期被騰空的公寓。 另外,請確保您的數據已轉義。
如果可用性取決於時間,那么您將需要將日期字段更改為日期時間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.