Java 比较JPA查询中的当前日期时间
我想将数据库中的日期与JPA查询中的当前日期时间进行比较: captureLimitDateJava 比较JPA查询中的当前日期时间,java,jpa,Java,Jpa,我想将数据库中的日期与JPA查询中的当前日期时间进行比较: captureLimitDate
SELECT o FROM Operation o"
+ " WHERE ( o.merchantId =:merchantId ) AND "
+ "(o.captureLimitDate < currentDateTime ) ";
我想比较当前日期和时间。上述查询是否有效 必须使用当前时间戳来引用JPQL查询中的当前日期和时间:
select o from Operation o
where o.merchantId = :merchantId
and o.captureLimitDate < CURRENT_TIMESTAMP
您可以使用
query.setParameter("maxDateTime", maxDateTime, TemporalType.TIMESTAMP);
JPA定义了特殊的JPQL表达式,这些表达式在执行查询时在数据库服务器上计算为日期和时间:
CURRENT\u DATE
-计算为当前日期(一个java.sql.DATE
实例)
CURRENT\u TIME
-计算为当前时间(一个java.sql.TIME
实例)
CURRENT_TIMESTAMP
-计算为当前时间戳,即日期和时间
(ajava.sql.Timestamp
实例)
更多信息:单元测试说明了什么?currentDateTime将作为用户输入,作为查询的参数。在这种情况下要做什么?
select o from Operation o
where o.merchantId = :merchantId
and o.captureLimitDate < :maxDateTime
query.setParameter("maxDateTime", maxDateTime, TemporalType.TIMESTAMP);