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)
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步