在我的数据库日期中,如2012-04-09 04:02:53 2012-04-09 04:04:51 2012-04-08 04:04:51,等等,我需要检索在日期字段中具有当前日期的数据。我的意思是我只需要比赛2012-04-09'。我该如何使用hibernate条件。
2012-04-09 04:02:53
2012-04-09 04:04:51
2012-04-08 04:04:51
2012-04-09'
使用Restrictions.between()生成一个where子句,该子句的日期列在‘2012-04-09 00:00:00’和‘2012-04-09 23:59:59’之间
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date fromDate = df.parse("2012-04-09 00:00:00"); Date toDate = df.parse("2012-04-09 23:59:59"); criteria.add(Restrictions.between("dateField", fromDate, toDate));
请注意,Criteria API中使用的所有属性都是Java属性名,而不是实际的列名。
更新:仅使用JDK获取当前日期的fromDate和toDate
Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); Date fromDate = calendar.getTime(); calendar.set(Calendar.HOUR_OF_DAY, 23); calendar.set(Calendar.MINUTE, 59); calendar.set(Calendar.SECOND, 59); Date toDate = calendar.getTime(); criteria.add(Restrictions.between("dateField", fromDate, toDate));