Varias formas de consulta de período de tiempo mybatis-plus

Método 1: método ge (mayor o igual que >=) y método le (menor o igual que <=)

    @Override
    public IPage<HealthCheckCommentReport> getPageList(HealthCheckCommentReport healthCheckCommentReport, PageRequestVo pageRequestVo) {
    
    
        Page<HealthCheckCommentReport> page = new Page<>();
        page.setCurrent(pageRequestVo.getPageIndex());
        page.setSize(pageRequestVo.getPageSize());

        // 查询条件
        LambdaQueryWrapper<HealthCheckCommentReport> queryWrapper = Wrappers.<HealthCheckCommentReport>lambdaQuery();
        queryWrapper.eq(Objects.nonNull(healthCheckCommentReport.getEntId()), HealthCheckCommentReport::getEntId,healthCheckCommentReport.getEntId());
        Optional.ofNullable(pageRequestVo.getStartTime()).ifPresent(
                date -> queryWrapper.ge(HealthCheckCommentReport::getCheckTime, date));
        Optional.ofNullable(pageRequestVo.getEndTime()).ifPresent(
                date -> queryWrapper.le(HealthCheckCommentReport::getCheckTime, date));
        queryWrapper.orderByDesc(HealthCheckCommentReport::getCreateTime);
        return baseMapper.selectPage(page,queryWrapper);
    }

备注: Aquí se usa la sintaxis opcional de java8, el principio es en realidad el juicio if else

Método 2: utilice el método de aplicación para escribir sentencias sql

queryWrapper.apply(serviceItemListDto.getStartTime() != null,
        "date_format (create_time,'%Y-%m-%d') >= date_format ({0},'%Y-%m-%d')", serviceItemListDto.getStartTime())
        .apply(serviceItemListDto.getEndTime() != null,
                "date_format (create_time,'%Y-%m-%d') <= date_format ({0},'%Y-%m-%d')", serviceItemListDto.getEndTime());
;

备注: El método de aplicación aquí escribe la condición donde

Método 3: use el método between para realizar la consulta de período de tiempo.

LocalDateTime startTime = LocalDateTime.parse("2022-01-01 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
LocalDateTime endTime = LocalDateTime.parse("2022-01-31 23:59:59", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));

QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.between("create_time", startTime, endTime);
List<User> userList = userMapper.selectList(queryWrapper);

En el código anterior, implementamos la consulta del campo create_time dentro del período de tiempo especificado a través del método between.

Supongo que te gusta

Origin blog.csdn.net/lzq2357639195/article/details/129935117
Recomendado
Clasificación