Sql查询两个时间段有重叠的记录

这个问题看上去简单,但是想了很久,最后发现,自己的思路有点乱。

下面四条时间段都和最上面那个有重叠的关系,就是这么个意思。

这里是问题的答案:

2个时间:
a_start, a_end
b_start, b_end

公式:
a_start <= b_end and a_end >= b_start
时间: 2024-10-06 18:26:11

Sql查询两个时间段有重叠的记录的相关文章

SQL Server 两个时间段的差and时间截取到时分

/*--------------------------时间截取到时分-----------------------------------*/ select Left(CONVERT(varchar(100), '2017-11-24 19:25:30.740', 20),16)--返回2017-11-24 19:25 --单独截取 select datepart(hour,'2017-11-24 19:25:30.740')--返回小时19 /*-----------------两个时间段的

sql 判断两个时间段是否有交集

本文转自CSDN 链接地址:http://blog.csdn.net/dasihg/article/details/8450195 时间段:starttime_1到endtime_1,starttime_2到endtime_2 SQL语句:where least(endtime_1, endtime_2) > greatest(starttime_1, starttime_2) 解释:least取最小值,greatest取最大值. 创建函数least.greatest CREATE FUNCTI

查询两个时间段间隔多久的数据

select * from tbname where datediff(dd,'2008-03-20',getdate())>30   天 select * from tbname where datediff(mm,'2008-04-20',getdate())>0   月 原文地址:https://www.cnblogs.com/zpbk/p/9288570.html

sql 查询两个列的值相加或者相乘

SELECT price * number #列1乘以列2 AS usdt #别名FROM order_btccoin #表名WHERE buy_uid = 13307325 255.0046567135846 #条件 加就加,乘就乘,减就减 ------------- 如果要统计查出的值的话可以这样 select sum(usdt)from(select price*number AS usdt from order_btccoin WHERE buy_uid=13307325)usdt 原文

Oracle判断两个时间段是否有重叠

判断两个时间段是否有重叠 (a,b),(c,d) 判断两段时间是否有重叠 方法一 select 'yes' from dual where d>a  and c<b; 方法二 select 'yes' from dual where (a, b) overlaps (c,d); 方法三 select 'yes' from dual where a between c and d or d between a and b;

PHP计算两个时间段是否有交集(边界重叠不算)

<?php /** * PHP计算两个时间段是否有交集(边界重叠不算) * * @param string $beginTime1 开始时间1 * @param string $endTime1 结束时间1 * @param string $beginTime2 开始时间2 * @param string $endTime2 结束时间2 * @return bool * @author blog.snsgou.com */ function is_time_cross($beginTime1 =

sql语句判断两个时间段是否有交集

场景:  数据库有有两个字段.开始时间<startTime>,和结束时间<endTime>,指定一个时间段(a,b),a表示开始时间,b表示结束时间.看数据库中有没有与(a,b)冲突的时间段,有的话就返回那条记录. 解析:两个时间段相当于两个集合,不过是有顺序的集合.两个时间段有交集细分有四种情况.用sql直接判断无交集的语句可能也有,但是目前没有想到,只想到有交集的语句,如果返回不为空则表明有交集,否则没有交集. select * from test_table where (s

Sql语句优化-查询两表不同行NOT IN、NOT EXISTS、连接查询Left Join

在实际开发中,我们往往需要比较两个或多个表数据的差别,比较那些数据相同那些数据不相同,这时我们有一下三种方法可以使用:1. IN或NOT IN,2. EXIST或NOTEXIST,3.使用连接查询(inner join,left join 或者 right join). 看下面的数据,我们准备选择出在depart_info中的pid在user_info中不存在的depart_信息. 有表1:depart_info 表2:user_info 方法一:采用NOT IN IN和NOT IN后面接的是一

SQL如何查询两个表的数据

在进行查询操作时,我们通常需要查询两个关联表的数据,我们可以使用where语句进行查询,如: select Emp.E_Id,Company.C_OraName from Emp,Company where Companey.C_Id=Emp.C_Id 但是我们往往会碰到比较复杂的语句,这时候使用where就不太合适了,其实SQL可以用较为直接的形式进行连接操作,可以在From子句中以直接的形式指出: select top 10 E_Id,E_Name,C_Name from Emp join