मुझे विश्वास नहीं है कि PostgreSQL INTERVAL
. पास करने की अनुमति देता है स्टेटमेंट में interval '1 day'
. के साथ हार्ड-कोडेड स्ट्रिंग की आवश्यकता होती है -स्टाइल इनपुट; हालांकि आप एक अंतराल पर एक स्ट्रिंग कास्ट करके इसे प्राप्त कर सकते हैं।
अपने कोड में SQL क्वेरी को निम्न में बदलने का प्रयास करें:
select a from ActivationCode a where a.creationTime + (:hoursAgo||' hour')::interval <= CURRENT_TIMESTAMP and a.type = :type and a.account = account
वैकल्पिक रूप से, मुझे अभी यह पिछला स्टैक ओवरफ्लो उत्तर , यह एक कोशिश के काबिल होगा, लेकिन एक ही समस्या हो सकती है (यह मानते हुए कि यह स्प्रिंग डेटा जेपीए के क्वेरी पार्सर से संबंधित है):
select a from ActivationCode a where a.creationTime + :hoursAgo * INTERVAL '1 hour' <= CURRENT_TIMESTAMP and a.type = :type and a.account = account