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())
                        );
            }

 

 

posted on 2023-02-24 17:40  Gu  阅读(93)  评论(0)    收藏  举报