想用hql查询出一个date字段的日期为今天日期的记录 hql的where子句怎么写呢 
(where i.date.....)谢谢
谢谢

解决方案 »

  1.   

    java.util.Date date=new java.util.Date();
    String hql="select i from table i where i.date=?";
    Query q=new Query(hql);
    q.setDate(0,date);
      

  2.   

    //建议用日历类吧!
    java.util.Calendar date = java.util.Calendar.getInstance();
    String hql="select i from table i where i.date=?";
    Query q=new Query(hql);
    q.setDate(0,date.getTime());
      

  3.   


    如果是这个永远查不出来,因为我不认为在查询那一时刻有数据这样java.util.Date date=new java.util.Date();
    String hql="select i from table i where to_char(i.date,'yyyy-MM-dd') =  to_char(?,yyyy-MM-dd)";
    Query q=new Query(hql);
    q.setDate(0,date);
      

  4.   

    补充:相等时用to_char,比较大小(<或>)时用 时间格式(如果不是时间格式可以用to_date)
    这两个函数用于oracle,
    其它数据库也有相应的函数。原理是一样的,
    这种东西做多了
      

  5.   

    我的例子:
    SimpleDataFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    Date date = sdf.parse("2009-06-01");
    List l = session.createQuery("from Person where Person.birthday:first")
    .setDate("first",date).list();
      

  6.   

    不需要在sql里面带参数吧,今天的日期直接得数据库的当前日期不就行了
    where i.date = (select sysdate from dual) 如果不想要时间就转化为'yyyy-MM-dd'等你想要的格式