mybatis plus查询上个月和本月的数据
时间: 2023-09-22 22:12:11 浏览: 56
Mybatis plus 配置多数据源的实现示例
你可以使用 MyBatis Plus 的 Lambda 查询来实现查询上个月和本月的数据。假设你要查询的字段名为 `create_time`,可以按照以下步骤操作:
1. 获取上个月和本月的起始时间和结束时间。
```java
// 获取上个月的起始时间和结束时间
Calendar lastMonthStart = Calendar.getInstance();
lastMonthStart.set(Calendar.DATE, 1);
lastMonthStart.add(Calendar.MONTH, -1);
lastMonthStart.set(Calendar.HOUR_OF_DAY, 0);
lastMonthStart.set(Calendar.MINUTE, 0);
lastMonthStart.set(Calendar.SECOND, 0);
Calendar lastMonthEnd = Calendar.getInstance();
lastMonthEnd.set(Calendar.DATE, 1);
lastMonthEnd.add(Calendar.DATE, -1);
lastMonthEnd.set(Calendar.HOUR_OF_DAY, 23);
lastMonthEnd.set(Calendar.MINUTE, 59);
lastMonthEnd.set(Calendar.SECOND, 59);
// 获取本月的起始时间和结束时间
Calendar thisMonthStart = Calendar.getInstance();
thisMonthStart.set(Calendar.DATE, 1);
thisMonthStart.set(Calendar.HOUR_OF_DAY, 0);
thisMonthStart.set(Calendar.MINUTE, 0);
thisMonthStart.set(Calendar.SECOND, 0);
Calendar thisMonthEnd = Calendar.getInstance();
thisMonthEnd.set(Calendar.DATE, thisMonthEnd.getActualMaximum(Calendar.DATE));
thisMonthEnd.set(Calendar.HOUR_OF_DAY, 23);
thisMonthEnd.set(Calendar.MINUTE, 59);
thisMonthEnd.set(Calendar.SECOND, 59);
```
2. 使用 Lambda 查询条件构造器进行查询。
```java
QueryWrapper<Entity> wrapper = new QueryWrapper<>();
wrapper.between("create_time", lastMonthStart.getTime(), lastMonthEnd.getTime())
.or()
.between("create_time", thisMonthStart.getTime(), thisMonthEnd.getTime());
List<Entity> list = entityMapper.selectList(wrapper);
```
这样就能查询出上个月和本月的数据了。注意,上述代码中的 `Entity` 和 `entityMapper` 需要替换成你实际的实体类和 Mapper 接口。
阅读全文