Mysql范围查询之两个时间段是否存在交集

需求如下

在后台会针对商品SKU配置售卖开始时间startTime和售卖结束endTime,现在想做一查询功能在查询框中输入一个查询开始时间和查询结束时间,查询在这段时间范围内售卖的SKU并展示出来,比如现在是12月,之前配置了一个SKU它的售卖时间是10月1日至11月6日,那么输入框中输入9月1日-10月1日、10月1日-11月6日、11月6日至12月1日等,都已查到此配置。

转化成代码语言就是:SKU售卖配置的时间段和查询输入的时间段,两段时间取交集,若有值则代表此配置ok。

图解

Mysql范围查询之两个时间段是否存在交集_第1张图片

select * from lingyejun.product_config where
(startTime > reqStartTime AND startTime <= reqEndTime) OR 
(startTime < reqStartTime AND endTime > reqEndTime) OR
(endTime >= reqStartTime AND endTime < reqEndTime)

本篇文章如有帮助到您,请给「翎野君」点个赞,感谢您的支持。

你可能感兴趣的