抱歉,如果标题有点模糊..
我有一个如下所示的数据库:
orderid | roomname | date(DATE) | from(TIME) | to(TIME)
示例数据:
1231 | E12 | 2013-04-05 | 07:00:00 | 10:00:00
1671 | E12 | 2013-04-05 | 13:00:00 | 14:00:00
例如,我正在搜索某个日期并显然获得了当天的所有预订。
正如您在示例数据中看到的,房间在 10:00:00 到 13:00:00 之间可用。我怎样才能抓住这个?
我正在考虑循环遍历时间 07:00:00-16:00:00 (每个查询一个)并检查是否从 sql 中得到任何结果。如果我确实得到结果,我就会知道房间很忙,但由于这里存在未知数(例如 08:00:00 和 09:00:00 不存在),因此我会得到误报。
这里有什么建议吗?
一种方法是使用“日历表”,或者如果您只对某一天感兴趣,那么“时钟表”也可以。下面(粗略地)说明了您将如何使用它。
SELECT clock.time AS available
FROM clock
LEFT JOIN bookings ON clock.time BETWEEN bookings.from AND bookings.to
AND bookings.date = '2013-01-01'
WHERE bookings.id IS NULL
http://www.brianshowalter.com/calendar_tables http://www.brianshowalter.com/calendar_tables是如何在 MySQL 中创建日历的示例
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)