Mysql 查询时间段是否可用,查询时间段是否有交集

 

 

  最近遇到 相似, 会议室预订的模型,  基本上 是  会议室 + 时间段来检测是否被占用。sql

  其实思路比较简单 , 一开始的思路是 去查询 本身选择的时间段 与数据库已经存在的时间段匹配  是否 可用,这种实现太繁琐,并且思路貌似很混乱,数据库

  后来简化思路:  只要查询本身选择的时间段  和 数据库里面的时间段 是否有交集 不就能够了么?.net

   逆向思惟, 利器。blog

 

  如下 转自: https://blog.csdn.net/a312024054/article/details/76786739table

数据库的字段 start_time, end_timeclass

输入的字段 a,btest

第一种im

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)

  


第二种数据

SELECT * FROM test_table
WHERE
NOT (
    (end_time < a)
    OR (start_time > b)
)

  


两种结果相同
以上。查询

相关文章
相关标签/搜索