我在mysql中有一个表格,它记录了酒店预订的开始和结束日期。我需要展示一个日历,展示当前月份内已预订的日期和可用日期。那么如何找出当前月份内预订的日期呢?我可以循环遍历当前月份的每一天,但这意味着30或31个查询,有没有更好、更优化的方法来查找本月预订的日期,以便在日历上标记颜色?
表结构如下:
hotelid int(11)
startdate (date)
enddate (date)
请求查询:
SELECT * FROM hotel_book WHERE hotelid = 1 AND DATE_FORMAT(startdate,'%Y-%m') >= '2012-08' AND DATE_FORMAT(enddate,'%Y-%m') <= '2012-08'
我相信我只需要将其设定为2012-08-01和2012-08-31,这样就不必在每个检查时处理日期格式了。但只是举个例子。