使用 LambdaQueryWrapper 根据当前时间来查询数据库中 当日 本周 本月 本年的数据
时间: 2023-07-26 12:17:34 浏览: 244
mysql 查询当天、本周,本月,上一个月的数据
好的,我理解了你的问题。使用 LambdaQueryWrapper 根据当前时间来查询数据库中当日、本周、本月、本年的数据,可以通过以下方式实现:
1. 当日数据查询:
```java
// 获取当日的起止时间
LocalDateTime now = LocalDateTime.now();
LocalDateTime start = LocalDateTime.of(now.toLocalDate(), LocalTime.MIN);
LocalDateTime end = LocalDateTime.of(now.toLocalDate(), LocalTime.MAX);
// 构建查询条件
LambdaQueryWrapper<Entity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.between("create_time", start, end);
// 执行查询
List<Entity> entityList = entityMapper.selectList(queryWrapper);
```
2. 本周数据查询:
```java
// 获取本周的起止时间
LocalDateTime now = LocalDateTime.now();
LocalDateTime start = now.with(DayOfWeek.MONDAY).with(LocalTime.MIN);
LocalDateTime end = now.with(DayOfWeek.SUNDAY).with(LocalTime.MAX);
// 构建查询条件
LambdaQueryWrapper<Entity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.between("create_time", start, end);
// 执行查询
List<Entity> entityList = entityMapper.selectList(queryWrapper);
```
3. 本月数据查询:
```java
// 获取本月的起止时间
LocalDateTime now = LocalDateTime.now();
LocalDateTime start = now.with(TemporalAdjusters.firstDayOfMonth()).with(LocalTime.MIN);
LocalDateTime end = now.with(TemporalAdjusters.lastDayOfMonth()).with(LocalTime.MAX);
// 构建查询条件
LambdaQueryWrapper<Entity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.between("create_time", start, end);
// 执行查询
List<Entity> entityList = entityMapper.selectList(queryWrapper);
```
4. 本年数据查询:
```java
// 获取本年的起止时间
LocalDateTime now = LocalDateTime.now();
LocalDateTime start = now.with(TemporalAdjusters.firstDayOfYear()).with(LocalTime.MIN);
LocalDateTime end = now.with(TemporalAdjusters.lastDayOfYear()).with(LocalTime.MAX);
// 构建查询条件
LambdaQueryWrapper<Entity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.between("create_time", start, end);
// 执行查询
List<Entity> entityList = entityMapper.selectList(queryWrapper);
```
以上代码中,`Entity` 是你要查询的实体类,`entityMapper` 是对应的 Mapper 接口。我们首先获取当前时间,然后根据当前时间计算出时间范围,最后构建查询条件并执行查询。
阅读全文