sql:
#查询的时间段 set @protect_from ='2022-12-27 00:00:00'; set @protect_to='2022-12-28 00:00:00'; #日程表todo里的start,end是日程的时间段 select * from info_todo where start BETWEEN @protect_from and @protect_to OR (start<=@protect_from and end>=@protect_from) #也可以这样写 or @protect_from between `start` and `end`
java 的MyBatis-Plus
LambdaQueryWrapper 写法
if (ObjectUtil.isNotNull(todo.getStart()) && ObjectUtil.isNotNull(todo.getEnd())) { queryWrapper .between(InfoTodo::getStart,todo.getStart(),todo.getEnd()) .or( i->i.le(InfoTodo::getStart, todo.getStart()) .ge(InfoTodo::getEnd, todo.getStart()) ); }
标签:00,start,交集,protect,getStart,查找,时间段,todo From: https://www.cnblogs.com/zitjubiz/p/MyBatis_LambdaQueryWrapper_sql_timerange_intersect.html