如何编写Hibernate Criteria只在两个日期和月份之间获取记录而不是一年

时间:2016-02-12 10:40:18

标签: hibernate date criteria

我正在创建一个应用程序,我让用户输入他们的出生日期(年/月/日)。

我需要的是让记录取决于月份而不是年份。

例如:

  1. 1993年1月1日

  2. 1995年8月1日

  3. 30/01/2015

  4. 如果用户在两个日期之间搜索下一个出生日期

    • 日期01/01/1993

    • 日期01/10/1999

    我需要先显示两条记录。

    任何人都可以提供帮助。

1 个答案:

答案 0 :(得分: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 )  );