我有个需求 是数据中一个升级字段是date类型的, 数据存储的比较全(年月日时分秒) ,我现在想只匹配年月日就可以了应该怎么做啊?????在数据库客户端写sql  用to_char 可以但是hibernate 中的hql语句应该怎么写呢?为什么报错呢?求高手帮帮忙
还有其他方式吗?
附上代码:
public List<Member> findUpDatemember(String UPDate) {
Session session = null;
session = getSession();
String hql = "from Member d where to_char(d.'update','yyyy-mm-dd')="+UPDate; 
Query query = session.createQuery(hql);
List<Member> list = query.list();
session.close();
return list;
}
这样报错

解决方案 »

  1.   

    String hql = "from Member d where to_char(d.'update','yyyy-mm-dd')="+UPDate;  d.'update'为什么要打引号 直接d.update
    还有你有把这段改下放一下放到sql那边运行一下没
      

  2.   


    这个在数据库是特殊字符,这个没关系了,去掉也试过,都有问题,  直接那边运行是没问题的, 是不是hql中没有这个to_char 函数??有没有其他的思路呢?
      

  3.   

    yyyy-MM-dd  mm应该大写。
      

  4.   

    你的这个to_char是在数据库那边跑的,不存在hql的问题。
    oracle用tranc(d.'update')
      

  5.   

    这应该取决于hql 的函数的
    谢谢了
      

  6.   

    谢谢解决了 ,没查到hql 有to_char 函数,有year(date) ,month(date)这种的返回int类型对比一下就好了
    多谢各位来者有份