no'lu haber bültenine bakmayın. Sadece iki yıla kıyasla, sadece yılın ve aya göre (yani güne dair haber verilmeksizin), JAVA ve HQL.İki ayı bir önceki yılın aynı ayına göre karşılaştırın,
d1
'un d2
'dan küçük veya eşit olup olmadığını kontrol etmem gerektiğini varsayalım. Algoritma Yukarıdaki kodun her iki parça halinde aynıdır
JAVA
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;
HQL
select item from Item item
where year(item.d1) <= year(:d2)
and month(item.d1) <= month(:d2)
, ama yanlış: Burada denedim budur
2011-10 LTE 2012-09
true
dönmelidir, ancakfalse
dönecektir, çünkü2011 < 2012
ancak
10 !< 09
yerine bir AND
bir OR
kullanırsanız, hala yanlış:
2013-01 LTE 2012-05
false
dönmelidir ama dönecektirtrue
2013 !< 2012
çünkü Yani
01 < 05
, nasıl işlem yapmalı mıyım Lütfen, JAVA ve HQL için buna ihtiyacım var.
Elbette haklısınız! Teşekkürler ';)' – sp00m