Hibernate Query在日期中提取记录而忽略年份

时间:2015-02-06 12:19:26

标签: java mysql hibernate

我想获取与今天日期匹配的所有记录,但忽略年份数据库中的日期就像这样1980-11-14。想要获取记录只比较月和日而不是一年。我尝试使用Criteria,但它不起作用。这是我的代码。

Date date = new Date(); // your date
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int month = cal.get(Calendar.MONTH);
int day = cal.get(Calendar.DAY_OF_MONTH);

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.MONTH,month);
calendar.set(Calendar.DAY_OF_MONTH, day);

Calendar fromDate = calendar.getInstance();
calendar.set(Calendar.MONTH,month);
calendar.set(Calendar.DAY_OF_MONTH, day);

Calendar toDate = calendar.getInstance();

Criteria criteria=session.createCriteria(Add_Follower.class);
criteria.add(Restrictions.eq("follow_uInfo.id", uid));
criteria.add(Restrictions.between("following_uInfo.dob",fromDate,toDate));
users=criteria.list();

1 个答案:

答案 0 :(得分:1)

我使用命名查询并使用“EXTRACT”,

在此示例中为生日:

SELECT p FROM Person p 
WHERE EXTRACT(DAY FROM p.gebdat) = EXTRACT(DAY FROM NOW())
AND EXTRACT(MONTH FROM p.gebdat) = EXTRACT(MONTH FROM NOW())
ORDER BY p.nachname, p.vorname