[英]Query to check booking availability by comparing datetimes
我正在設計汽車預訂系統,並且試圖編寫一個查詢來檢查汽車是否可用。 我希望查詢用英語進行的操作是檢查存儲在變量$ mysql_startdate和$ mysql_enddate中的所選開始和結束租金是否與任何現有預訂不重疊。
我檢查了查詢中的變量是否具有應有的值,因此我猜我的語法有問題,很可能是最后一部分。
日期時間變量的格式:
$ mysql_startdate = 2012-03-22 00:00 $ mysql_enddate = 2012-03-23 00:00
我沒有從mysql_error收到任何錯誤,問題是即使請求有可用的汽車也沒有結果顯示。
$query = "SELECT c.*,b.startHire,b.endHire FROM cars c JOIN bookings b WHERE c.currentBranch = '$pickUpLocation' AND NOT (b.startHire > '$mysql_enddate' OR b.endHire < '$mysql_startdate')";
數據庫中的startHire和endHire字段設置為datetime,格式為-2012-03-02 00:00:00,等等。
您可以幫助我確定問題並修改sql查詢嗎?
讓我知道您是否需要其他代碼/信息。
謝謝!
試試看:
SELECT c.*, b.startHire, b.endHire
FROM cars c JOIN bookings b
WHERE c.currentBranch = '$pickUpLocation'
AND NOT b.startHire between '$mysql_startdate' and '$mysql_enddate'
and not b.endHire between '$mysql_startdate' and '$mysql_enddate'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.