预订查询不考虑到达和离开日

时间:2011-03-16 11:56:39

标签: php mysql

我一直在寻找这个困境的答案但却一无所获。我希望你能帮忙找出我做错了什么。

我有一个mysql查询,只选择以下可用的分隔符:

SELECT * 
FROM apartments 
WHERE apartment_ID NOT IN (SELECT apartment_ID 
                           FROM bookings 
                           WHERE startDate <= '$endingdate' 
                             AND endDate >= '$startingdate')    

问题是这个查询不考虑即出发日是半天而且可以使用。

更好地解释:

如果表“预订”的预订截止日期为16-01-2011,则搜索时间为16-01-2011。公寓应该是可用的,因为那是“半天”(出发当天)。查询似乎没有考虑到这一点,也没有显示公寓。

请帮助你?

弗朗西斯

2 个答案:

答案 0 :(得分:1)

我对MySQL数据类型并不熟悉,但是你确定startDate和endDate也没有与时间部分一起存储。如果是这种情况,那么“16-01-2011 16:25”将不会小于或等于“16-01-2011”。

答案 1 :(得分:0)

从您的子查询中取出=符号,或者如果某个日期空出的地方在该日期始终可用,则至少取出最后一个。这应该检查在要求的日期空出的公寓。还要确保您的数据已转义。

如果可用性取决于时间,则需要将日期字段更改为日期时间。