【发布时间】:2020-07-09 06:38:51
【问题描述】:
我有一个用户表,我在其中保存用户信息以及他们一天的开始和结束时间
id day_start day_end
1 08:00:00 16:00:00
2 09:00:00 18:00:00
还有另一个表格保存用户的日历事件
id user_id start end
1 1 2020-01-12 12:00:00 2020-01-12 13:30:00
2 1 2020-01-12 13:30:00 2020-01-12 14:30:00
3 1 2020-01-12 09:00:00 2020-01-12 10:30:00
所以我试图根据他们的空闲时间来过滤这些人。即我想提供开始时间、结束时间和一周中的几天的数组,并根据这些标准找到可用的用户。 例如,我想说我正在寻找周六或周一 10:00:00 到 14:00:00 之间任何时间有空的人,并收到用户列表。
请注意,用户可能无法在整个请求的时间内有空,而只是一小部分时间。例如,周六 11:00:00 到 11:30:00 只有空闲时间的用户也应该被列出。
我正在寻找一个 MySQL 查询来实现这个功能。
如果查询可以给出所有空闲时间段的开始和结束时间,那就太好了。 像这样的
user_id start end
1 2020-01-12 08:00:00 2020-01-12 09:00:00
1 2020-01-12 10:30:00 2020-01-12 12:00:00
1 2020-01-12 14:30:00 2020-01-12 18:00:00
2 ...
...
【问题讨论】:
标签: mysql sql date datetime join