我一直在寻找这个困境的答案但却一无所获。我希望你能帮忙找出我做错了什么。
我有一个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。公寓应该是可用的,因为那是“半天”(出发当天)。查询似乎没有考虑到这一点,也没有显示公寓。
请帮助你?
弗朗西斯
答案 0 :(得分:1)
我对MySQL数据类型并不熟悉,但是你确定startDate和endDate也没有与时间部分一起存储。如果是这种情况,那么“16-01-2011 16:25”将不会小于或等于“16-01-2011”。
答案 1 :(得分:0)
从您的子查询中取出=符号,或者如果某个日期空出的地方在该日期始终可用,则至少取出最后一个。这应该检查在要求的日期空出的公寓。还要确保您的数据已转义。
如果可用性取决于时间,则需要将日期字段更改为日期时间。