oracle判断时间是否在时间段,Oracle判断两个时间段是否相交
SQL中常常要判断两个时间段是否相交,该如何判断呢?比如两个时间段(S1,E1)和(S2,E2)。我最先想到的是下面的方法一。方法一:(S1 BETWEEN S2 AND E2) OR (S2 BETWEEN S1 AND E1)。很好理解:一个时间段的开始时间S1在另一个时间中间(S2,E2),或者开始时间S2在另一个时间中间(S1,E1),这个方法比较繁琐方法二:本方法先考虑这两段时间什么情况
SQL中常常要判断两个时间段是否相交,该如何判断呢?比如两个时间段(S1,E1)和(S2,E2)。我最先想到的是下面的方法一。
方法一:(S1 BETWEEN S2 AND E2) OR (S2 BETWEEN S1 AND E1)。很好理解:一个时间段的开始时间S1在另一个时间中间(S2,E2),或者开始时间S2在另一个时间中间(S1,E1),这个方法比较繁琐
方法二:本方法先考虑这两段时间什么情况下不相交,如图:
-----+-----------------+-----------------+--------------+--------------
S1 E1 S2 E2
-----+-----------------+-----------------+--------------+--------------
S2 E2 S1 E1
无非两种情况:(S1,E1)段在(S2,E2)段前面和(S1,E1)段在(S2,E2)段后面。其对应的表达式为:(S2 > E1) OR (S1 > E2)。
于是相交条件就是 NOT((S2 > E1) OR (S1 > E2))该式等价于
(S2 <= E1)AND (S1 <= E2)
这就是我们要的。
例:select* fromtr_schedule_affair where not(('2017-05-23 10:00' > end_time) or (start_time > '2017-05-23 12:30'))
其实方法一和方法二的条件是一致的:
((S1 <= E2) AND (S1 >= S2)) OR ((E1 <= E2) AND (E1 >= S2))
=>((S1 <= E2) AND (S1 >= S2) ) OR ((S1 <= E2) AND (E1 >= S2)) (因为S1 <= E1)
<=> (S1 <= E2) AND ((S1 >= S2) OR (E1 >= S2))
=> (S1 <= E2) AND ((E1 >= S2) OR (E1 >= S2)) (因为 S1 <= E1)
<=>(S1 <= E2) AND (E1 >= S2)
mysql判断两个时间段是否有交集
//判断两个时间段是否有交集 private function checkTimeCross($start_time,$end_time){ $sql ) AND ((start_time > ...
ORACLE判断两个日期间隔几个工作日
CreateTime--2017年9月7日17:14:56 Author:Marydon ORACLE判断两个日期间隔几个工作日 方法:使用存储过程 /** * 判断两个日期间隔几个工作日 */ ...
sql语句判断两个时间段是否有交集
场景: 数据库有有两个字段.开始时间,和结束时间,指定一个时间段(a,b),a表示开始时间,b表示结束时间.看数据库中有没有与(a,b ...
js判断两个时间段是否有交集
//判断两个时间是否有交集 function isDateIntersection(start1, end1, start2, end2) { var startdate1 = new Date(st ...
java 判断两个时间段是不是有交集
如上图:X Y Z 分别为传来的开始时间可能位于数据库中时间段的位置. X有三种可能 即传来的开始时间为与数据可中某条数据的开始位置! 这样他的结束时间就有三种可能 1.位于 ...
java 判断两个时间段是否有交集
/* 开始时间 */ Date leftStartDate = feesPreferential.getPreferentialStartTime(); /* 结束时间 */ Date leftEnd ...
C# 判断两条直线是否相交
直接上代码,过程不复杂 /// /// 判断两条线是否相交 /// ///
Oracle 查询两个时间段内的所有日期列表
1.查询某时间段内日期列表 select level,to_char(to_date('2013-12-31','yyyy-mm-dd')+level-1,'yyyy-mm-dd') as date_ ...
PHP判断两个矩形是否相交
随机推荐
js创建对象的高级模式
hello,安瑞万.第一次写博客,心情很激动啊.要是说的不好,你来打我啊?反正你也不知道我家地址.好了,不扯了.进入正题:要是写的不好欢迎大家来批评指导. what:创建对象的三种模式 --1,门户大 ...
Jeasyframe 开源框架 稳定版 V1.5 发布
这是Jeasyframe开源框架的第一个稳定版本,感谢一起帮忙测试并给予反馈的网友们. 框架官网:http://www.jeasyframe.org/ 产品介绍: Jeasyframe开源框架是基于S ...
百度Web富文本编辑器ueditor在ASP.NET MVC3项目中的使用说明
====================================================================== [百度Web富文本编辑器ueditor在ASP.NET M ...
Lucene 4.7 --创建索引
Lucene的最新版本和以前的语法或者类名,类规定都相差甚远 0.准备工作: 1). Lucene官方API http://lucene.apache.org/core/4_7_0/index.htm ...
linux文档编辑
编辑某个文档: 可以直接编辑的如你有文档aa,可以用vi aa [注意:必须在AA所在的目录下]: 如果没有文档而且你又想编辑就可以直接编辑vi aa[名字你可以随便命名]; 也可以先建立一个文档to ...
Codevs 4768 跳石头 NOIP2015 DAY2 T1
4768 跳石头 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 传送门 题目描述 Description 一年一度的"跳石头"比赛又要开始了! ...
[河南省ACM省赛-第三届] AMAZING AUCTION (nyoj 251)
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=251 规则: 1.若某竞标价唯一,则胜出 2.若不存在唯一竞标价,则投标次数最少竞标价中标 ...
【转】c++ 获取程序运行时间
转自:http://blog.csdn.net/ghevinn/article/details/22800059 DWORD start_time=GetTickCount(); {...} DWOR ...
python统计目录和目录下的文件,并写入excel表
运营那边提出需求,有些媒体文件需要统计下 目录结构大概是这样的 每个目录下面都有很多文件,目录下面没子目录 我这里是模拟下创建的目录和文件,和运营那边说的目录结构都是一致的 想最终统计结果如下格式 我 ...
使用quaggaJS识别图片中的条形码
quaggaJS是一个纯JS的插件,用于识别图片中的条形码,很方便.一般用于移动端拍照识别,也可以在网页端上传图片识别. github下载地址 首先要指定正确格式的条形码,常见的条形码编码类型有EAN ...
所有评论(0)