JPA:如何比较两个日期

时间:2013-10-24 09:07:47

标签: java hibernate jpa

我需要在JPQL查询中的两个日期之间获取数据,但它不起作用。 日期是整数,但我想与日期进行比较。这是部分查询,

谢谢!

     Query query = em.createQuery
    ("select p1 from Profile p1, Preference p2 where 
(p1.birthdate >= p2.agefrom and p1.birthdate <= p2.ageto and p2.preferenceid=:a)")
                                        .setParameter("a", profileid);


                TABLE Profile {
                profileid integer,
                birthdate date
                }

                TABLE Preference {
                preferenceid integer,
                agefrom integer,
                ageto integer
                }

2 个答案:

答案 0 :(得分:2)

使用BETWEEN

Query query = em.createQuery("select p1 from Profile p1, Preference p2 where 
   p1.birthdate BETWEEN p2.agefrom AND p2.ageto and p2.preferenceid=:a)")

答案 1 :(得分:0)

我认为你不能比较日期和整数。你必须要么:

  • 使用datediff将yeardate转换为整数(year,birthdate,getDate())
  • 或使用dateadd(year,-agefrom,getDate())将agefrom转换为Date,
  • 或者你可以在agefrom和ageto之间使用datediff(year,birthdate,getDate())来简化它。
相关问题