MYSQL判断时间有没有交集


遇到一个新的需求,再为商户做的支付宝小程序中有一个每日签到领取积分和优惠券的功能,要求是一段时间内只能有一个签到活动,所以在商户吼他新增签到活动的时候,需要对签到活动的时间做限制,所有的签到活动的开始时间结束时间不能有交集。

那么时间集合的逻辑如下所示:

总结起来就是:最小值小于最大值,并且最大值大于最小值,那么一定重叠

数据库中活动的开始时间,结束时间是start_time,end_time

SQL语句

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)


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM