有没有办法只比较dateTime字段的日期部分?我知道我可以用between来表示一天的开始和结束,但这并不好。也不能比较每个字段(日、月、年...);有什么建议吗?
rxztt3cl1#
您可以使用datetrunc方法(doc在此)。
datetrunc
htrmnn0y2#
看一下com.querydsl.core.types.dsl.Expressions类,在本例中,可以使用Expressions::dateTimeOperation和Ops.DateTimeOps.DATE来截断时间部分:
com.querydsl.core.types.dsl.Expressions
Expressions::dateTimeOperation
Ops.DateTimeOps.DATE
import com.querydsl.core.BooleanBuilder; import com.querydsl.core.types.Predicate; import com.querydsl.core.types.Ops; import com.querydsl.core.types.dsl.*; ... public Iterable<Entity> getList(Date createdOn) { BooleanBuilder builder = new BooleanBuilder(); BooleanExpression compareDatePart = Expressions.dateTimeOperation( Date.class, Ops.DateTimeOps.DATE, QEntity.entity.timestamp).eq(createdOn); Predicate predicate = builder.and(compareDatePart).getValue(); return entityRepository.findAll(predicate); } ...
2条答案
按热度按时间rxztt3cl1#
您可以使用
datetrunc
方法(doc在此)。htrmnn0y2#
看一下
com.querydsl.core.types.dsl.Expressions
类,在本例中,可以使用Expressions::dateTimeOperation
和Ops.DateTimeOps.DATE
来截断时间部分: