0

JPQL クエリで 2 つの日付の間のデータを取得する必要がありますが、うまくいきません。日付は整数ですが、日付と比較したいです。これが部分的なクエリです。

ありがとう!

     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

0

Date と Integer を比較することはできないと思います。次のいずれかを行う必要があります。

  • datediff(year,birthdate,getDate())を使用して生年月日を整数に変換します
  • または、dateadd(year, -agefrom, getDate()) を使用して agefrom を Date に変換します。
  • または、agefrom と ageto の間に datediff(year,birthdate,getDate()) を使用して単純化できます。
于 2013-10-24T09:26:57.163 に答える