Project 中 有个日期类型的  proDate 字段,现在要查询出这个表中两年以内数据,HQL中的WHERE 部分怎么写啊?
find("from Project where proDate>?".....)

解决方案 »

  1.   

    我是这样写的GregorianCalendar gcl = new GregorianCalendar();
    gcl.setTime(new Date());
    gcl.add(gcl.YEAR, -2);find("from Project where proDate > '"+gcl.getTime()+"'")这样会报错:在该出现数字字符的地方没有出现
      

  2.   

    gcl.getTime() == Tue Jan 20 15:46:23 CST 2009 格式不对
      

  3.   

    数据库用oracle的话可以这样的。Calendar cal = Calendar.getInstance();
    cal.add(Calendar.YEAR, -2);
    SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-DD");
    find("from Project where proDate > to_date('"+sf.format(cal.getTime())+"','yyyy-MM-dd HH24:mi:ss')");特别麻烦,看看其它高手有没有简单点的