Mysql 如何查询时间段交集

Mysql 查询时间段交集

使用场景

数据库表有两个字段starttime,endtime。现在给出(a,b)的时间段,查出和(starttime,endtime)时间段有交集的数据。

sql

select * from TABLENAME where  
    (starttime > a AND starttime < b) OR 
    (starttime < a AND endtime > b) OR
    (endtime > a AND endtime < b) OR
    (starttime = a AND endtime = b);

Mysql 查询两个时间段是否有交集的情况

数据库的字段 start_time, end_time

输入的字段 a,b

第一种

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)
    )

两种结果相同。

以上为个人经验,希望能给大家一个参考。

猜你在找的Mysql 如何查询时间段交集相关文章

我们都知道,binlog可以说是MySQL中比较重要的日志了,在日常学习及运维过程中,也经常会遇到。不清楚你对binlog了解多少呢?本篇文章将从binlog作用、binlog相关参数、
这篇文章主要给大家介绍了关于Mysql模糊查询是否区分大小写的相关资料,文中给出了5种解决方法以及各个方法的建议,需求的大佬可以参考下
mysql COLLATE是校对集的意思,可以理解为,排序规则等,下面这篇文章详细的给大家介绍了关于MYSQL中COLLATE是什么的相关资料,需求的大佬可以参考下
了安装配置mysql及Navicat Premium的详细流程,配置方法也真的很简单,本文给大家详细介绍mysql Navicat Premium安装配置相关知识感兴趣的朋友,一起学习吧
了mysql获取两个集合的交集/差集/并集操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
了mysql中between的边界,范围说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
为 id 列选择一个好的数据类型非常重要,id 列会经常用于做比较(例如联合查询的条件),以及用于查找其他列。而且,id 也经常用于外键。因此,id 列的数据类型不仅仅关系自
我们知道MYSQL NEXT-KEY LOCK是用来防止幻读,那么MySQL next-key lock 加锁范围是多少,很多人都不知道,本文就来详细的介绍一下
本文讲解了MySQL 百万级数据的4种查询优化方式,大家可以根据自身需求,选择适合自己的优化方式
MySQL 有多种类型存储日期和时间,例如 YEAR 和 DATE。MySQL 的时间类型存储的精确度能到秒(MariaDB 可以到毫秒级)。但是,也可以通过时间计算达到毫秒级。时间类型的
了MySQL中的布尔值,怎么存储false或true的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
了Mysql 设置boolean类型的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教