sql判断时间区间是否冲突
有两种写法
-- 时间段为a,b
第一种
SELECT
*
FROM
table
WHERE
( start_time >= a AND end_time <= b )
OR ( end_time >= a AND end_time <= b )
OR ( start_time >= a AND start_time <= b )
OR ( start_time <= a AND end_time >= b )
where情况1被情况2、3包含,所以可以简写为下面写法
SELECT
*
FROM
table
WHERE
( end_time >= a AND end_time <= b )
OR ( start_time >= a AND start_time <= b )
OR ( start_time <= a AND end_time >= b )
第二种
SELECT
*
FROM
table
WHERE
NOT ( start_time > b OR end_time < a )
AND end_time_type = 1