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两表联合查询的四种情况总结
一般来说,我们为了得到更完整的结果,我们需要从两个或更多的表中获取结果,我一般都是用select xxx,xxx from 表1,表2 where 表1.xxx=表2.xxx,我们一般都是进行的是这般的操作,其实mysql中还有一种操作,那就是join的操作,例如底下有两个表: 请看 "Persons" 表: 接下来请看 "Orders" 表: 以上的这两个表,然后我们把它们进行连接查询 SELECT Persons.LastName, Persons.FirstN
-
MySql 按时间段查询数据方法(实例说明)
时间格式为2008-06-16 查询出当天数据: SELECT * FROM `table` WHERE date(时间字段) = curdate(); 查询出当月字段: SELECT * FROM `table` WHERE month( 时间字段) = month( now( ) ) ; 时间格式为1219876-- UNIX时间,只要应用"FROM_UNIXTIME( )"函数 例如查询当月: SELECT * FROM `table` WHERE month( from_uni
-
MySQL查询两个日期之间记录的方法
网上搜索出来的结果多是下面答案: MySQL中,如何查询两个日期之间的记录,日期所在字段的类型为datetime(0000-00-00 00:00:00) 解决方案: 直接使用><=就可以查询. where createDate<'2003-5-31' and createDate>'2003-2-30'; 其实简单美好的写法可以是这样的 where createDate between'2010-08-01' and '2010-08-19' 看完了之后,你是不是觉得后者比较
-
MySql查询时间段的方法
本文实例讲述了MySql查询时间段的方法.分享给大家供大家参考.具体方法如下: MySql查询时间段的方法未必人人都会,下面为您介绍两种MySql查询时间段的方法,供大家参考. MySql的时间字段有date.time.datetime.timestamp等,往往我们在存储数据的时候将整个时间存在一个字段中,采用datetime类型:也可能采用将日期和时间分离,即一个字段存储date,一个字段存储时间time.无论怎么存储,在实际应用中,很可能会出现包含"时间段"类型的查询,比如一个访
-
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 (star
-
MySQL慢查询中的commit慢和binlog中慢事务的区别
目录 一.问题来源 二.各自的判定方式 三.证明 四.总结 常见原因总结,特殊情况除外. 一.问题来源 在分析性能问题的时候慢查询和binlog慢事务是常用的手段.最近在分析一个慢查询的,发现其中包含了大量的commit语句慢,但是在分析binlog慢事务的时候不能完成匹配.比如这段时间commit的语句可能有1000个,但是慢事务可能只有100个,这个差得也太多了,那么为什么会出现这种现象呢? 二.各自的判定方式 慢事务 对于一个显示提交的(insert)事务通常如下: GTID_LOG_EV
-
MySQL子查询用法实例分析
本文实例讲述了MySQL子查询用法.分享给大家供大家参考,具体如下: 假设表my_tbl包含三个字段a,b,c:现在需要查询表中列a的每个不同值下的列b为最小值的记录量. 比如表记录为: a b c 1 3 'cd' 2 3 'nhd' 1 5 'bg' 2 6 'cds' 1 7 'kiy' 3 7 'vsd' 3 8 'ndf' 希望得到结果为: a b c 1 3 'cd' 2 3 'nhd' 3 7 'vsd' (1) 其中一个做法:先查出
-
查找MySQL中查询慢的SQL语句方法
如何在mysql查找效率慢的SQL语句呢?这可能是困然很多人的一个问题,MySQL通过慢查询日志定位那些执行效率较低的SQL 语句,用--log-slow-queries[=file_name]选项启动时,mysqld 会写一个包含所有执行时间超过long_query_time 秒的SQL语句的日志文件,通过查看这个日志文件定位效率较低的SQL .下面介绍MySQL中如何查询慢的SQL语句 一.MySQL数据库有几个配置选项可以帮助我们及时捕获低效SQL语句 1,slow_query_log 这
-
对MySQL慢查询日志进行分析的基本教程
0.首先查看当前是否开启慢查询: (1)快速办法,运行sql语句 show VARIABLES like "%slow%" (2)直接去my.conf中查看. my.conf中的配置(放在[mysqld]下的下方加入) [mysqld] log-slow-queries = /usr/local/mysql/var/slowquery.log long_query_time = 1 #单位是秒 log-queries-not-using-indexes 使用sql语句来修改:不能按照m
-
MySQL切分查询用法分析
本文实例讲述了MySQL切分查询用法.分享给大家供大家参考,具体如下: 对于大查询有时需要'分而治之',将大查询切分为小查询: 每个查询功能完全一样,但只完成原来的一小部分,每次查询只返回一小部分结果集. 删除旧的数据就是一个很好地例子.定期清理旧数据时,如果一条sql涉及了大量的数据时,可能会一次性锁住多个表或行,耗费了大量的系统资源,却阻塞了其他很多小的但重要的查询.将一个大得DELETE语句切分为较小的查询时,可以尽量减少影响msql的性能,同时减少mysql复制造成的延迟. 例如,每个月
-
整理MySql常用查询语句(23种)
废话不多了,直接贴代码了 一查询数值型数据: SELECT * FROM tb_name WHERE sum > 100; 查询谓词:>,=,<,<>,!=,!>,!<,=>,=< 二查询字符串 SELECT * FROM tb_stu WHERE sname = '小刘' SELECT * FROM tb_stu WHERE sname like '刘%' SELECT * FROM tb_stu WHERE sname like '%程序员' SE
-
详解mysql 获取某个时间段每一天、每一个小时的统计数据
获取每一天的统计数据 做项目的时候需要统对项目日志做分析,其中有一个需求是获取某个给定的时间段内,每一天的日志数据,比如说要获取从2018-02-02 09:18:36到2018-03-05 23:18:36这个时间段内,统计出每一天的日志数据,一般情况下,看到这种需求都是考虑使用函数来搞定,直接上sql语句 SELECT DATE_FORMAT(trigger_time, '%Y-%m-%d') triggerDay, COUNT(id) triggerCount FROM `job_qrtz
-
MySQL 连接查询的原理和应用
概述 MySQL最强大的功能之一就是能在数据检索的执行中连接(join)表.大部分的单表数据查询并不能满足我们的需求,这时候我们就需要连接一个或者多个表,并通过一些条件过滤筛选出我们需要的数据. 了解MySQL连接查询之前我们先来理解下笛卡尔积的原理. 数据准备 依旧使用上节的表数据(包含classes 班级表和students 学生表): mysql> select * from classes; +---------+-----------+ | classid | classname |
随机推荐
- django获取ajax的post复杂对象的实现方法
- Lua多重继承代码实例
- JavaScript 图片放大镜(可拖放、缩放效果)第1/4页
- 正则表达式之捕获组/非捕获组介绍
- VC++创建msi文件的方法
- Laravel框架中扩展函数、扩展自定义类的方法
- 为Python的web框架编写前端模版的教程
- 用ASP应用程序实现自己的UrlDeCode
- C++中BitBlt的使用方法详解
- 用JavaScript实现UrlEncode和UrlDecode的脚本代码
- jQuery可见性过滤选择器用法示例
- ruby声明式语法的实现例子
- jquery 轮换显示 第一小个例子
- jQuery隐藏和显示效果实现
- js textarea自动下拉(带计数)图
- 详解 问题:HttpServlet cannot be resolved to a type
- Android实现从相册截图的功能
- Android自定义View实现闪耀字体效果
- ImageView点击可变暗的实例代码(android代码技巧)
- ubuntu用 vmware 安装win10系统的教程(分享)