Mysql时间范围在其他时间范围内

时间:2015-10-06 01:09:31

标签: mysql time range

大家好,抱歉我的英语不好......

我必须在未包含在其他时间范围内的时间内选择小时范围... 例如,这是表

DATE        | Time_from | Time_to | Hour
01/01/2015    10:00       18:00     8
02/01/2015    08:00       20:00     12
02/01/2015    16:00       19:00     3

对于日期02/01/2015我必须只获得第2行12小时,因为第3行的时间范围包含在第2行...

希望我解释得很好......

由于

1 个答案:

答案 0 :(得分:0)

像这样的东西

select a.date
from table a
where not exists (select b.date from table b
                  where a.date = b.date and
                  ((a.Time_from >= b.Time_from and a.Time_from <= b.Time_to) or
                   (a.Time_to >= b.Time_from and a.Time_to <= b.Time_to))

修改 您还需要通过使用唯一ID添加somethign,从表a排除表b中正在处理的行

and a.uniqueid <> b.uniqeid