基于MySQL中的现有记录查找一天中可用的时隙

基于MySQL中的现有记录查找一天中可用的时隙,mysql,Mysql,我有一个包含以下字段的表: 我如何找到当前不在此表中的当天所有可用时段(基于从上午7点开始到晚上10点结束的一天)?例如,在某一天,如果从早上7点到晚上10点的所有时间段都是在下午6点到晚上7点的时间段,那么这将是一个结果 每个时隙的持续时间不会变化——它们都持续一个小时 我尝试过很多不同的东西,但我觉得我离得太远了,我尝试过的东西几乎不值得发布 任何帮助都将不胜感激 我会考虑的一件事是有一个“小时表”,上面有你想要检查的所有值。然后,使用左连接并仅选择空值,您将只获得未分配的值。我构建了一个

我有一个包含以下字段的表:

我如何找到当前不在此表中的当天所有可用时段(基于从上午7点开始到晚上10点结束的一天)?例如,在某一天,如果从早上7点到晚上10点的所有时间段都是在下午6点到晚上7点的时间段,那么这将是一个结果

每个时隙的持续时间不会变化——它们都持续一个小时

我尝试过很多不同的东西,但我觉得我离得太远了,我尝试过的东西几乎不值得发布


任何帮助都将不胜感激

我会考虑的一件事是有一个“小时表”,上面有你想要检查的所有值。然后,使用左连接并仅选择空值,您将只获得未分配的值。我构建了一个SQLfiddle,用一些伪值来检查它,以显示它是如何工作的:

SELECT h.slot
FROM hours h
LEFT JOIN deliveries d
ON ( h.slot = d.start_time AND date_stamp = '2014-04-04' )
WHERE start_time IS NULL
检查SQLFIDLE中的数据,如果您知道插槽并且它们没有重叠,那么您将获得值的日期

SLOT
January, 01 1970 07:00:00+0000
January, 01 1970 10:00:00+0000

您希望在纯sql中实现这一点???任务在时间上是否可以重叠?或者根据您的示例,下一个任务条目最早可以是14:00:00?它们总是在一个小时内开始吗?@mind-404不,它们不能重叠,是的,它们总是在一个小时内开始,即14:00,15:00巧克力糖能满足你的需要吗?否则我会再试一次。我感觉他的答案回答了这个问题!无论如何,非常感谢你!如果我能给你更多的支持票和接受票,我会的!