项目中要实现一个列出:24小时内登录和24小时内注册的用户,在DAO层不会写HQL查询语句,不知道该怎么写,24小时以内该如何表示??请高手们指点一下!我的最初错误写法是:
 Date a=new Date();    //定义一个当前时间
 String hql = "from User user where user.regTime between"+a.getDay()-1+"and" +a.getDay()+1; 
上面regTime为数据库中存储的用户注册时间。

解决方案 »

  1.   

    不行  语法报错误    而且getDay是过期用法
      

  2.   

    "from User user where user.regTime between :begin and :end "sessionFactory 为org.hibernate.SessionFactory 对象;Date begin =new Date();//当前时间
    Date end=new Date(begin.getTime()+1000*24*60*60);//一天后sessionFactory.getCurrentSession().createQuery(hql)
            .setParameter("begin", begin).setParameter("end", end).list();//返回listLZ可以了记得给分
      

  3.   

    是个办法,不过1天以内,应该是begin.getTime()-1000*24*60*60吧
      

  4.   

    你的数据里日期的保存格式:
    如果是,如 2010-01-09
    可以这样处理:DataFormat df = new SimpleDataFormat("yyyy-MM-dd")
    Calendar c = Calendar.getInstance();
    Date d1 = c.getTime();//或者当前系统日期c.add(Calendar.DAY_OF_MONTH, -1);//设置当前时间前一天
     Date d2 =c.getTime();系统前一天时间
    String befTime =df.format(d1);
    String nowTime =df.format(d2);String hql = "from User user where user.regTime between"+befTime+"and" +nowTime; 
      

  5.   

    between 包上不包下,也就是说,前面的你需要减一天,而后面的保持不变
    比如要查询8号的,你就该查询
    between 7 and 8