MySQL判断时间段是否重合的两种方法

两种写法。如图,4种重合情况和2种不重合情况。

第一种写法:

-- 时间段 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后的4个条件分别代表了图中4种重合的情况。
但是第一种情况被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);

到此这篇关于MySQL判断时间段是否重合的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • MySql数据库时间序列间隔查询方式

    目录 mysql时间序列间隔查询 mysql查询指定时间间隔数据 mysql时间序列间隔查询 在时间序列处理中,采集到的数据保存在数据表中,采集的频率可能是固定间隔(10秒,1小时或者1天),但往往是不固定的. 处理的时候要固定一个时间间隔进行查询,比如10秒一次的采样,处理的时候变成每小时一次. 可以用以下方法: DELIMITER $$ CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_RealData`(IN `timeBegin` DAT

  • MySQL中的日期时间类型与格式化方式

    目录 [1]MySQL中的日期时间类型 ① 详细解释 ② SQL语句实例 ③ timestamp字段 ④ 测试实例 [2]日期时间类型格式化 ① DATE_FORMAT( )函数 ② date_format( ) 转换格式 ③ str_to_date()函数 [1]MySQL中的日期时间类型 MySQL中常用的几种时间类型有:date.datetime.time.year.timestamp 数据类型 占用字节 最小值 最大值 零值表示 date 4 1000-01-01 9999-12-31

  • MySql获取当前时间并转换成字符串的实现

    目录 MySql获取当前时间的函数 时间转字符串 字符串转日期 MySql获取当前时间的函数 now(); select now(); //结果:2019-04-19 09:31:59 sysdate(); select SYSDATE(); //结果:2019-04-19 09:31:59 MySql 还有其他的一些函数,本人没用过 current_timestamp() current_timestamp localtime() localtime localtimestamp – (v4.

  • MySQL如何使用时间作为判断条件

    背景:在开发过程中,我们经常需要根据时间作为判断条件来查询数据,例如:当月,当日,当前小时,几天内...... 1. 当月 我们只需要使用一个mysql的MONTH(date)函数即可实现.(注意判断年份) MONTH(date); -- 用法:MONTH函数返回一个整数,表示指定日期值的月份. -- 举例 SELECT MONTH('2020-11-11 00:00:00') -- 返回值是11 2. 30天内 之所以把"30天内"放在当月的后面,是因为我经常会遇到这两个需求相互转换

  • mysql数据库自动添加创建时间及更新时间

    目录 前言 1.描述 2 完整的操作 SQL 2.1 修改现有表中的时间列默认值为自动获取 2.2 现有表中添加时间列设置默认值 2.3 创建表时时间列设置默认值 总结 前言 志在巅峰的攀登者,不会陶醉在沿途的某个脚印之中,在码农的世界里,优美的应用体验,来源于程序员对细节的处理以及自我要求的境界,年轻人也是忙忙碌碌的码农中一员,每天.每周,都会留下一些脚印,就是这些创作的内容,有一种执着,就是不知为什么,如果你迷茫,不妨来瞅瞅码农的轨迹. 1.描述 在mysql中,添加表中的列类型为时间类型(

  • MySQL日期及时间字段的查询

    目录 1.日期和时间类型概览 2.日期和时间相关函数 3.日期和时间字段的规范查询 前言: 在项目开发中,一些业务表字段经常使用日期和时间类型,而且后续还会牵涉到这类字段的查询.关于日期及时间的查询等各类需求也很多,本篇文章简单讲讲日期及时间字段的规范化查询方法. 1.日期和时间类型概览 MySQL支持的日期和时间类型有 DATETIME.TIMESTAMP.DATE.TIME.YEAR , 几种类型比较如下: 涉及到日期和时间字段类型选择时,根据存储需求选择合适的类型即可. 2.日期和时间相关

  • mysql判断当前时间是否在开始与结束时间之间且开始与结束时间允许为空

    目录 需求:查询进行中的活动数据 下面sql则查询的是满足以上四种需求的结果集,达标题需求 需求:查询进行中的活动数据 进行中一共有以下几种情况: 1.开始时间为空,结束时间为空, 此结果数据将永远为进行中的数据 2.开始时间为空,结束时间不为空,则当前时间在结束时间之前,为进行中的数据 3.开始时间不为空,结束时间为空,则当前时间在开始时间之后,为进行中的数据 4.开始时间不为空,结束时间不为空,则当前时间在开始与结束时间段之内的数据为进行中数据 下面sql则查询的是满足以上四种需求的结果集,

  • mysql查询获得两个时间的时间差方式

    目录 获得当前时间和另一时间的时间差 mysql最全的计算时间差 计算两日期之间相差多少周 计算两日期之间相差多少天 计算两日期/时间之间相差的秒数 计算两日期/时间之间相差的时分数 获得当前时间和另一时间的时间差 SELECT TIMESTAMPDIFF(SECOND,(select last_locationTime from municipal_employee where employee_id=9),now()) as diffTime; mysql的 TIMESTAMPDIFF(SE

  • MySQL判断时间段是否重合的两种方法

    两种写法.如图,4种重合情况和2种不重合情况. 第一种写法: -- 时间段 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) 解析:wh

  • MySql逗号拼接字符串查询的两种方法

    下面两个函数的使用和FIND_IN_SET一样,使用时只需要把FIND_IN_SET换成FIND_PART_IN_SET或FIND_ALL_PART_IN_SET 例如某字段里是为1,2,3,4,5 使用方法: 第一种,传入1,3,6  可以查出来 select * from XXX where FIND_PART_IN_SET('1,3,6','1,2,3,4,5') 第二种,传入1,3,6  查不出来 select * from XXX where FIND_ALL_PART_IN_SET(

  • Mysql 远程连接配置实现的两种方法

    Mysql 远程连接配置实现的两种方法 大家在公司工作中,经常会遇到mysql数据库存储于某个人的电脑上,大家要想连接mysql服务,装有mysql服务的电脑就必须开启远程连接. 第一种: root@ubuntu:/usr/local/MySQL# mysql -hlocalhost -uroot -proot; mysql>use mysql; mysql>insert into user ( host, user, password, Select_priv, Insert_priv, U

  • JavaScript判断数组重复内容的两种方法(推荐)

    前言 一般,我们可能会给数组去重,这个操作并不复杂,执行一个循环就是了.现在,我要做的是,判断数组中是否有重复的内容,如果有,返回 true 否则,返回 false. 思路 把数组变成字符串 循环原数组,拿每一个字段和这个字符串进行比对,看是否有重复 如何拿A字符串和B字符串进行对比,并且要求判断出B字符串中包含过个A字符串呢? 方法一 indexOf() 和 lastIndexOf() 对比法. 首先,我们构建代码: var arr = ["aa","bb",&q

  • JavaScript判断对象和数组的两种方法

    在调用后端接口时,由于后端接口的不规范统一,接口最外层在没有数据时返回的是空数组(其实更想要的是空json对象),而在有数据时返回的是json对象,所以在接收到后端返回的接口时就需要首先判断返回的数据是对象还是数组,这里提供一些方法  方法一: //判断是否为数组 function isArray(obj) { return obj instanceof Array; } //判断是否为对象 function isObject(obj) { return obj instanceof Objec

  • selenium判断元素是否存在的两种方法小结

    在selenium中没有对应的方法,需要自己去写. 元素存在,但不唯一,操作元素会报错 元素不存在,操作元素也会报错 第一种:捕获异常 弊端:只要页面上有元素,不几个,都返回True from selenium import webdriver import unittest class Test1(unittest.TestCase): # 一.准备浏览器驱动.网站地址 # setUp在每个测试函数运行前运行,注意大小写:self不能省略 def setUp(self): self.drive

  • 解决MySQL主从数据库没有同步的两种方法

    目录 解决MySQL主从数据库没有同步的两种方法 一.不同步情况 二.解决方案 1.先进入主库,进行锁表,防止数据写入 2.进行数据备份 3.查看master 状态 4.把mysql备份文件传到从库机器,进行数据恢复 5.停止从库的状态 6.然后到从库执行mysql命令,导入数据备份 7.设置从库同步 8.重新开启从同步 9.查看同步状态 10.回到主库并执行如下命令解除表锁定. 解决MySQL主从数据库没有同步的两种方法 工作的过程中发现Mysql的主从数据库没有同步 一.不同步情况 Mast

  • MySQL开放远程连接权限的两种方法

    背景: 要求做一个评价系统,由于之前被人做过一小部分,有现成的数据库(数据库:MySQL 5.7 ,数据库软件:MySQL workbench 6.3 CE),为了省去安装数据库导出导入表的麻烦,想要直接远程连接对方数据库. 方法如下: 首先,检查要连接数据库的服务器的防火墙等是否关闭,检查与服务器连接是否通畅(方法:在cmd控制台中 输入 ping ip地址) 其次通过网上查找有两种方法: 1,改表法. 可能是你的帐号不允许从远程登陆,只能在localhost.这个时候只要在localhost

  • MySQL数据库远程访问权限如何打开(两种方法)

    下载GPL版本安装 MySQL Community Edition(GPL) Community (GPL) Downloads » 在我们使用mysql数据库时,有时我们的程序与数据库不在同一机器上,这时我们需要远程访问数据库.缺省状态下,mysql的用户没有远程访问的权限. 下面介绍两种方法,解决这一问题. 1.改表法 可能是你的帐号不允许从远程登陆,只能在localhost.这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "

  • MySQL查看目前运行状况的两种方法

    第一种方法:利用mysql命令查看 MySQL 内建直接看 status 就可以看到系统常见讯息, 如下述范例: 复制代码 代码如下: 1.$ mysql -u root -p 2.mysql> s "Threads: 2 Questions: 224857636 Slow queries: 229 Opens: 1740 Flush tables: 1 Open tables: 735 Queries per second avg: 137.566 $ mysql -u root -p

随机推荐