我有下表:
id | roomid | courseid |日(NUM)|开始(TIME)|端(TIME)
这是我坚持的大型查询的一部分。如何在特定日期的特定房间的课程之间显示所有没有时间间隔的ID?有点卡在这里。 我想我必须使用'ADDTIME()'函数来找出course1结束时间和课程2start time =>的差异。我已经看了很长一段时间而且我被卡住了!
答案 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所说,获取当天和房间的数据并在应用程序代码上解决这个问题可能更容易。