首页 java数据 sql语句判断两个时间点是否会出现交集

sql语句判断两个时间点是否会出现交集

场景:  数据库有有两个字段.开始时间<startTime>,和结束时间<endTime>,指定…

场景:  数据库有有两个字段.开始时间<startTime>,和结束时间<endTime>,指定一个时间段(a,b),a表示开始时间,b表示结束时间。看数据库中有没有与(a,b)冲突的时间段,有的话就返回那条记录。

解析:两个时间段相当于两个集合,不过是有顺序的集合。两个时间段有交集细分有四种情况。用sql直接判断无交集的语句可能也有,但是目前没有想到,只想到有交集的语句,如果返回不为空则表明有交集,否则没有交集。

select *
from test_table
where (startTime >= a AND startTime <= b) OR
        (startTime <= a AND endTime >= b) OR
        (endTime >= a AND endTime <= b)

注意在mybaits中需要 把大于号和小于号  给 转义

	   And  (a.startdate &gt;= #{startdate} AND a.startdate &lt;= #{enddate}) OR
	    (a.startdate &lt;= #{startdate} AND a.enddate &gt;= #{enddate}) OR
	    (a.enddate &gt;= #{startdate} AND a.enddate &lt;= #{enddate}))

gt

lt

参考http://blog.csdn.net/xtj332/article/details/10103777

免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。

为您推荐

mysql  优化提升

mysql 优化提升

desc  分别使用DESCRIBE和DESC查看表tb dept1和表tb emp1的表结构。 查看表详细结构语句SH...
navicat 能打开root链接不知道密码直接修改mysql 密码

navicat 能打开root链接不知道密码直接修改mysql 密码

找到系统自带 mysql 数据库   update user set password= password(&...
Cannot access aliyunmaven ( xxx ) in offline mode and the artifact

Cannot access aliyunmaven ( xxx ) in offline mode and the artifact

Cannot access aliyunmaven ( xxx ) in offline mode and the ar...
mysql 基础入门

mysql 基础入门

第一章 SQL的介绍 1.1什么是sql SQL:Structure Query Language。(结构化查询语言),...
You can’t specify target table ‘caiji_data_meiwen’ for update in FROM clause

You can’t specify target table ‘caiji_data_meiwen’ for update in FROM clause

  mysql 中不能自己 引用本身 要再加一层 不行 DELETE from `caiji_data_mei...
返回顶部