时间约束查询

时间:2012-04-25 16:54:23

标签: mysql sql

我有下表:

id | roomid | courseid |日(NUM)|开始(TIME)|端(TIME)

这是我坚持的大型查询的一部分。如何在特定日期的特定房间的课程之间显示所有没有时间间隔的ID?有点卡在这里。 我想我必须使用'ADDTIME()'函数来找出course1结束时间和课程2start time =>的差异。我已经看了很长一段时间而且我被卡住了!

2 个答案:

答案 0 :(得分:2)

如果您感兴趣的是充分利用。 如果说一天是7个小时(午餐时间为9-5个小时),请拨打420分钟以方便。 然后420 - Sum(MINUTE(TIMEDIFF(t2,t1))= 0意味着房间已经完全预订。

答案 1 :(得分:1)

也许玩弄CTE可以帮助你。尝试从这样的东西开始

WITH RU_CTE AS (
    SELECT your_fields
      FROM RoomUtilization
     WHERE day = @DayParameter
       AND start = @startTimeParameter
     UNION ALL
    SELECT your_fields
      FROM RoomUtilization RU
     WHERE day = RU_CTE.day
       AND start = RU_CTE.end
)
SELECT *
  FROM RU_CTE

看看是否有一些满足您的需求

但正如eggyal所说,获取当天和房间的数据并在应用程序代码上解决这个问题可能更容易。