使用JPQL比较DateTime列的时间?

时间:2014-09-02 04:38:35

标签: java hibernate jpa eclipselink jpa-2.0

我正在尝试使用JPQL比较DateTime列的时间。例如 Table1 包含 appointmentDate 是列类型Date, appointmentTime 是列类型Date。

我得到了原生查询所需的输出,查询是

select * from table1 where appointment_date>curdate()-1 and TIME(appointment_time) between '09:00:00' and '12:00:00';

如何将此查询转换为JPQL或CriteriaBuilder。谢谢。

2 个答案:

答案 0 :(得分:0)

JPQL中没有TIME函数(因为任何JPQL引用都会告诉你)。您必须找到特定于您的RDBMS的函数并使用JPA 2.1

"FUNCTION('sqlTimeFunction', args) BETWEEN :val1 AND :val2"

答案 1 :(得分:0)

您可以使用以下原生查询,它对我有用:

select * from table1 where hour(appointment_time) >= 9 and hour(appointment_time) <= 12