PHP MySql时隙搜索

时间:2014-04-04 07:37:49

标签: php mysql

我一直在尝试从一个有三列(user_id,start_time,end_time)的表中找到持续时间为60分钟的免费时间段,但是不知何故无法让它工作。

我只有一张桌子'计时',我正在存储所有已预订的广告位。假设所有条目仅为一天。

Select 
  a.id,
  a.end_hour AS `Free time Start`,
  IFNULL(la.start_hour,a.end_hour) AS `Free Time End`,
  IFNULL(TIMEDIFF(la.start_hour, a.end_hour),'00:00:00') AS `Total Free Time`
FROM timing AS a
  LEFT JOIN (SELECT * FROM timing LIMIT 1,18446744073709551615) AS la
    ON la.id = (SELECT MIN(id) FROM timing where (id > a.id AND user_id = a.user_id) LIMIT 1)
WHERE a.user_id = 2;

有了这个,我就能找到实际使用的插槽之间的所有空闲插槽。我需要两点帮助
1。如何包括一天的开始和结束时间(分别为9:00和17:00)。因此,如果第一个占用的插槽在10:00开始,则9:00-10:00也是一个空闲插槽
2。如何在固定时间段(例如1小时)中拆分空闲时间

谢谢!

0 个答案:

没有答案