की कोई सूचना नहीं लेना मुझे दो तिथियों की तुलना करने में सक्षम होना चाहिए, केवल वर्ष और महीने (यानी दिन की सूचना के बिना), और जावा में और HQL।वर्ष के आधार पर दो तिथियों की तुलना करें,
मान लें कि मुझे यह जांचने की आवश्यकता है कि d1
d2
से कम या बराबर है या नहीं। एल्गोरिथ्म ऊपर कोड के दोनों टुकड़ों में ही है HQL
select item from Item item
where year(item.d1) <= year(:d2)
and month(item.d1) <= month(:d2)
जावा
calendar.setTime(d1);
int y1 = calendar.get(Calendar.YEAR);
int m1 = calendar.get(Calendar.MONTH);
calendar.setTime(d2);
int y2 = calendar.get(Calendar.YEAR);
int m2 = calendar.get(Calendar.MONTH);
return y1 <= y2 && m1 <= m2;
है, लेकिन यह गलत है:: यहाँ मैं क्या करने की कोशिश की है
2011-10 LTE 2012-09
true
वापस करना चाहिए लेकिनfalse
वापस करेगा क्योंकि2011 < 2012
लेकिन10 !< 09
अगर मैं एक AND
के बजाय एक OR
उपयोग करते हैं, यह अभी भी गलत है:
2013-01 LTE 2012-05
false
लौटना चाहिए लेकिन वापस आ जाएगीtrue
क्योंकि2013 !< 2012
लेकिन01 < 05
तो, क्या मुझे प्रक्रिया करनी चाहिए? कृपया, मुझे जावा और एचक्यूएल के लिए इसकी ज़रूरत है।
मैन, ज़ाहिर है, आप सही हैं! धन्यवाद ';) ' – sp00m