mysql判断时间段是否重合的语句

前言

最近有个需求,一个表中有连个时间字段,一个开始时间,一个结束时间,下载再新增数据时,需要判断是否有重合

实现

例如开始时间字段:start_time 结束时间字段:end_time

a 和 b 是输入的字段

1
2
3
4
5
SELECT * FROM test_table
WHERE
(start_time >= a AND start_time <= b)
OR (start_time <= a AND end_time >= b)
OR (end_time >= a AND end_time <= b)

1:判断数据库中的某行数据是否在输入的时间段之内

2:判断数据库中的某行数据是否包含输入的时间段

3:判断结束时间是否在输入的时间段内

有满足其一就表示时间重合