在项目中偶会遇到比如说查询某个公司开通的会员账号在不在有效期内,比如这个公司的会员账号有效期开始时间和结束时间分别是:
start_time:-12-16 11:00:34
end_time: -12-22 11:00:34
SELECT*,now() FROMvip_logWHEREstart_time <= now() AND end_time >= now()
now获取当前时间。
另一种,使用时间段查询数据,数据中包含有开始结束时间,时间有重合就查询出。
select * from XXX where((star_time > #{startTime} AND (#{endTime} > end_time OR (#{endTime} > star_time AND #{endTime} < end_time)))OR(star_time < #{startTime} AND (#{endTime}>end_time OR (#{startTime} > star_time AND #{startTime} < end_time))))