0

我需要在 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
                }
4

2 回答 2

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)")
于 2013-10-24T09:09:52.803 回答
0

我认为您无法比较日期和整数。您必须:

  • 使用 datediff(year,birthdate,getDate()) 将生日转换为整数
  • 或使用 dateadd(year, -agefrom, getDate()) 将 agefrom 转换为 Date,
  • 或者您可以在 agefrom 和 ageto 之间使用 datediff(year,birthdate,getDate()) 来简化它。
于 2013-10-24T09:26:57.163 回答