में टाइमस्टैम्प कॉलम पर हाइबरनेट के साथ दिनांक क्वेरी एक तालिका में टाइमस्टैम्प कॉलम है। उसमें एक नमूना मूल्य 2010-03-30 13:42:42 हो सकता है। हाइबरनेट के साथ, मैं एक रेंज क्वेरी प्रतिबंध कर रहा हूं। बीच ("कॉलम-नाम" ,डेट से, डेटडेटा)।PostgreSQL
इस कॉलम के लिए हाइबरनेट मैपिंग निम्नानुसार है।
<property name="orderTimestamp" column="order_timestamp" type="java.util.Date" />
मान लें, मैं सभी रिकॉर्ड है कि तारीख 30 मार्च 2010 और 31 मार्च, 2010 इस क्षेत्र पर एक सीमा क्वेरी इस प्रकार से किया जाता है पता लगाना चाहते हैं।
Date fromDate = new SimpleDateFormat("yyyy-MM-dd").parse("2010-03-30");
Date toDate = new SimpleDateFormat("yyyy-MM-dd").parse("2008-03-31");
Expression.between("orderTimestamp", fromDate, toDate);
यह काम नहीं करता।
क्वेरी को संबंधित टाइमस्टैम्प में "2010-03-30 00:00:00" और "2010-03-31 00:00:00" के रूप में परिवर्तित किया गया है। इसलिए, 31 मार्च 2010 के लिए सभी रिकॉर्ड अनदेखा कर दिए गए हैं।
इस समस्या का एक आसान समाधान "2010-03-31 23:59:59" के रूप में समाप्ति तिथि हो सकता है। लेकिन, मैं जानना चाहता हूं कि टाइमस्टैम्प कॉलम के केवल दिनांक भाग से मेल खाने का तरीका है या नहीं।
इसके अलावा, दोनों सीमाओं सहित Expression.between()
है? दस्तावेज़ीकरण इस पर कोई प्रकाश नहीं फेंकता है।
मेरा मानना है कि दोनों सीमाओं पर हमेशा अनन्य है। आप केवल 1 मिलीसेकंड क्यों नहीं हटाते हैं और उनमें से प्रत्येक को 1 मिलीसेकंड जोड़ते हैं? – jishi
@ jishi यह डेटाबेस निर्भर है (और अधिकांश समय समावेशी मुझे विश्वास है)। –
शशिकांत क्या आप इसे हल करने में सक्षम हो सकते हैं? – changeme