LambdaQueryWrapper 如何实现根据日期查询数据 数据库中的时间精确到秒 但是查询数据时只精确到天
时间: 2023-12-10 18:39:05 浏览: 258
LambdaQueryWrapper 支持通过 `date_format` 函数来实现日期的格式化查询,可以将查询条件的日期和数据库中的日期都格式化为只精确到天,然后进行比较。
例如,假设数据库中的日期字段名为 `create_time`,要查询所有 `create_time` 大于等于 2022-01-01 的记录,可以使用以下代码:
```java
LocalDate date = LocalDate.of(2022, 1, 1);
LambdaQueryWrapper<Entity> wrapper = new LambdaQueryWrapper<Entity>()
.ge(Entity::getCreateTime, date.format(DateTimeFormatter.ISO_LOCAL_DATE));
```
这里使用 `DateTimeFormatter.ISO_LOCAL_DATE` 将日期格式化为 ISO-8601 标准的日期字符串,格式为 `yyyy-MM-dd`,只精确到天。然后 `ge` 方法将会生成 `create_time >= '2022-01-01'` 的 SQL 条件语句。
如果要查询一段时间范围内的数据,可以使用 `between` 方法,并将日期范围格式化为字符串:
```java
LocalDate startDate = LocalDate.of(2022, 1, 1);
LocalDate endDate = LocalDate.of(2022, 1, 31);
LambdaQueryWrapper<Entity> wrapper = new LambdaQueryWrapper<Entity>()
.between(Entity::getCreateTime,
startDate.format(DateTimeFormatter.ISO_LOCAL_DATE),
endDate.format(DateTimeFormatter.ISO_LOCAL_DATE));
```
这里使用 `between` 方法将会生成 `create_time between '2022-01-01' and '2022-01-31'` 的 SQL 条件语句。
阅读全文