SQL / PHP如何验证日期是否在一系列日期之间?

时间:2016-05-28 08:06:02

标签: php mysql sql

我目前有预订和房间表:

预订表 bookings table

房间桌

rooms table 2

我正在尝试创建一个搜索室sql查询,考虑到当前的入住和退房房间的日期。我不知道如何实现WHERE条件来检查有和没有现有预订记录的房间。如果确实存在预订记录,我如何验证用户输入的签入和签出日期,以便查询不会输出预订与用户输入日期范围冲突的房间

到目前为止这是我的sql:

$sql = "SELECT rooms.rid, beds, orientation, price FROM rooms JOIN bookings ON rooms.rid = bookings.rid
WHERE (beds = $nOfBeds)
AND ($cInDate < checkin AND $cOutDate <= checkin)
OR ($cInDate > checkout AND $cOutDate >= checkout)";
if ($rOrientation != "") {
$sql .= " AND orientation = '$rOrientation'";
}

现在它只输出有现有预订的房间,而不是输出符合床位参数但没有现有预订的其他房间。

1 个答案:

答案 0 :(得分:0)

BETWEEN运算符与日期值示例

http://www.w3schools.com/sql/trysql.asp?filename=trysql_select_between_date&ss=-1

AND(签入$ cInDate和$ cOutDate)