2016-02-12 52 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) ); 
相关问题