Hibernate查询比较日期(过去最多10个月)

时间:2016-08-17 11:45:45

标签: mysql sql hibernate

我试图找出日期是否在10个月之内。如果没有记录应该被忽略!该解决方案需要与HQL一起使用。我已经尝试了多个查询:

这个有效,但不是我想要的:

session.createQuery("FROM Application WHERE id="+id+" AND date < current_date()").getResultList();

这里的某些内容为空:

session.createQuery("FROM Application WHERE id="+id+" AND month(date) + (10-month(current_date()) < month(current_date())").getResultList();

“间隔”未知:

session.createQuery("FROM Application WHERE id="+id+" AND DATE_SUB(current_date(), INTERVAL 10 MONTH) < date").getResultList();

“月份”未知:

session.createQuery("FROM Application WHERE id="+id+" AND current_date()-10 month < date+").getResultList();

我没有更多的想法如何解决这个问题。希望有人可以帮助我。

谢谢!

1 个答案:

答案 0 :(得分:0)

为什么不尝试这个......

    static SimpleDateFormat datetimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Calendar date = Calendar.getInstance();
    date.add(Calendar.MONTH, -10);
    Date date1=date.getTime();
    String newdate=datetimeFormat.format(date1);

   Query query=session.createQuery("FROM Application a WHERE a.id="+id+" AND a.date <" + "'"+newdate+"'");

   System.out.println(query.list().size());