用hibernate的hql语句查询mysql数据库中的某一个表的上个月的记录怎么写呢?请前辈们赐教!!谢谢

解决方案 »

  1.   

    用BETWEEN 关键字啊   日期提前计算好  传进hql语句中
      

  2.   

    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");     Calendar cal = Calendar.getInstance();
         GregorianCalendar gcLast = (GregorianCalendar) Calendar.getInstance();
         Calendar calendar = Calendar.getInstance();
         calendar.setTime(new Date());     calendar.add(Calendar.MONTH, -1);
         Date theDate = calendar.getTime();
         gcLast.setTime(theDate);
         gcLast.set(Calendar.DAY_OF_MONTH, 1);
         String beginDate = df.format(gcLast.getTime()); //上月的开始日期
         StringBuffer str = new StringBuffer().append(beginDate).append(
         " 00:00:00");
         beginDate = str.toString();     calendar.add(cal.MONTH, 1);
         calendar.set(cal.DATE, 1);
         calendar.add(cal.DATE, -1);
         String endDate = df.format(calendar.getTime());//上月的结束日期
         StringBuffer endStr = new StringBuffer().append(endDate).append(
         " 23:59:59");
         endDate = endStr.toString();       String hql  = "from table where date between ? and ?"; 
           第一个?传入beginDate ,第二个?传入endDate   .