2016-02-12 31 views
0

我正在創建一個應用程序,我讓用戶輸入他們的出生日期(dd/mm/yyyy)。如何編寫Hibernate標準以僅在兩個日期和月之間獲得記錄而不是一年

我需要的是讓記錄取決於月份和日期而不是年份。

例:

  1. 1993年1月1日

  2. 1995年8月1日

  3. 30/01/2015

如果用戶搜索下兩個日期之間的出生日期

  • 日期從1993年1月1日

  • 到日期1999年1月10日

我需要顯示前兩個記錄。

任何人都可以幫忙。

+0

類似的問題:http://stackoverflow.com/questions/1268233/how-to-use-datepart-in-an-nhibernate-criteria-query –

+0

@StefanSteinegger:它的Nhiberante。我可以使用它進行休眠嗎? –

+0

@StefanSteinegger:我使用Spring MVC和Hibernate –

回答

0

需要使用DATE_FORMAT和SqlRestriction。

String sqlWhere = " DATE_FORMAT(" + "{alias}.date_of_birth"+ ",'%m-%d') BETWEEN '" + 
String.format("%02d", fromMonth) + "-" + 
String.format("%02d", fromDate) + "' and '" + 
String.format("%02d", endMonth) + "-" + 
String.format("%02d", endDate)+ "'" ; 
criteria.add(Restrictions.sqlRestriction(sqlWhere) ); 
相關問題