数据库存放的时间类型:
in_times               in_va
2012-05-05 10:00:00    10
2012-05-05 11:00:00    20
2012-05-05 12:00:00    30
JAP查询的时候能按日期分组吗?
相当于sql
select sum(in_va),to_char(in_times ,'yyyy-mm-dd') from my_table group by to_char(in_times ,'yyyy-mm-dd')
结果
2012-05-05 60

解决方案 »

  1.   


    你不用用to_char再转,直接group by date(日期类型就可以)
      

  2.   

    我是用
    CriteriaBuilder来查的,那么写呢????
      

  3.   

    不用to_char转换格式的话,分组的时候是按时间分组的吧,不是统计到那一天的吧
      

  4.   


    恩,你要统计,那是需要转成to_char.
    类似于这样的:
    CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
    CriteriaQuery<Object> criteriaQuery = criteriaBuilder.createQuery();给你个api上的例子:Query query = entityManager.createQuery("select min(s.pint),s.pbyte from SimpleBean s group by s.pbyte");
     
    List listExpected = query.getResultList();
     
    CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
    CriteriaQuery<Object> criteriaQuery = criteriaBuilder.createQuery();
    Root from = criteriaQuery.from(SimpleBean.class);
     
    Expression minExpression = criteriaBuilder.min(from.get("pint"));
    Path pbytePath = from.get("pbyte");
    CriteriaQuery<Object> select = criteriaQuery.multiselect(minExpression, pbytePath);
     
    CriteriaQuery<Object> groupBy = select.groupBy(pbytePath);
     
    TypedQuery<Object> typedQuery = entityManager.createQuery(select);
    List listActual = typedQuery.getResultList();
      

  5.   


    来源:http://www.altuure.com/2010/09/23/jpa-criteria-api-by-samples-part-i/
      

  6.   


    如果数量很大,你还会用hql吗?肯定改用sql了。记住,在一个项目中,不可能只使用hql或者只使用sql。两者结合。
      

  7.   

    哎 关键是我们的那个框架规范只能使用JPA那套查询,ORACKE的分析函数都没得办法用....很是悲剧