सबसे पहले, आपको startDate
. के बीच अंतर की गणना करने के लिए एक JPA तरीके की आवश्यकता है और pageDate
संबंधित इकाई में, जिसे तैयार करना कुछ कठिन है क्योंकि यह बहुत डेटाबेस पर निर्भर है। अंत में आपको कुछ कस्टम फ़ंक्शन की आवश्यकता होगी या एक बहुत ही जटिल JPQL क्वेरी लिखनी होगी।
PostgreSQL में दो तिथियों के बीच के दिनों की गणना करना उतना ही आसान है जितना कि date_part('day', t2 - t1)
करना . घंटों के लिए आपको पहले से ही date_part('day', t2 - t1) * 24 + date_part('hour', t2 - t1)
चाहिए। और मिनट date_part('day', t2 - t1) * 24 * 60 + date_part('hour', t2 - t1) * 60 + date_part('minute', t2 - t1)
।
JPQL में इन डेटाबेस फ़ंक्शंस का उपयोग करने के लिए, आप FUNCTION
. का उपयोग कर सकते हैं सिंटैक्स जैसे FUNCTION('date_part', 'day', :startDate - pageDate)
।
अंत में, आप इस तरह के एक एक्सप्रेशन के आधार पर ग्रुपिंग करेंगे और आईडी के आधार पर एक काउंट करेंगे, कुछ इस तरह होगा
SELECT COUNT(o.id)
FROM MyObject o
GROUP BY FUNCTION('date_part', 'day', :startDate - o.pageDate)