gpt4 book ai didi

java - 使用 JPA Criteria Query 比较两个日期之间的差异

转载 作者:行者123 更新时间:2023-11-30 06:18:24 32 4
gpt4 key购买 nike

我正在使用 MySQL 作为我的应用程序的后端。

我想使用 JPA Criteria Query 执行下面的查询。

SELECT * 
FROM table1 t1
WHERE datediff(now(), t1.created) >= 20;

注意:created的类型是TIMESTAMP

我想要像这样的条件查询:

CriteriaBuilder cb = getEntityManager().getCriteriaBuilder();

// select
CriteriaQuery<Table1> query = cb.createQuery(Table1.class);

// from
Root<Table1> root = query.from(Table1.class);

// where
List<Predicate> predicates = new ArrayList<Predicate>();

// TODO: add expression for datediff(now(), t1.created) >= 20

query.where(cb.and(predicates.toArray(new Predicate[0])));

有人能帮忙吗?

提前致谢。

最佳答案

假设 created 是一个 java.util.Date,您必须在 java 中执行 DATEDIFF 并将属性与结果进行比较日期:

Calendar c = Calendar.getInstance();
c.add(Calendar.DAY_OF_YEAR, -20);
Date myDate = c.getTime();

predicates.add(cb.lessThanOrEqualTo(root.<Date>get("created"), myDate));

关于java - 使用 JPA Criteria Query 比较两个日期之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24669544/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com