各位我想用时间作为参数来查询记录,但是好像不行!!  我的写法是:select diaryInfo from DiaryInfo diaryInfo where diaryInfo.diaryDate >='2008-10-1' and diaryInfo.diaryDate<='2008-10-31' and diaryInfo.id in (select diary.id from Diary diary where diary.userInfo.id=1) 不过查不出记录也不报错!惨....实在是看不出错在哪里了,但是数据库却有数据

解决方案 »

  1.   

    你把 sql 拿到 数据库去执行一下查询 看看啦(select diary.id from Diary diary where diary.userInfo.id=1) ??
      

  2.   

       我以前做过类似的 · sql语句写了两天  现在发上来你参考下:
       hqlbuf.append("select f.mtopic,h.empName,p.mrName,f.mstart,f.mend,p.useingFalg,p.mrId,f.mid"+
          " from FlowMeeting f,HrEmp h,PubMeetingRoom p where f.mroom=p.mrId and f.proposer"+
          "=h.userId and f.currentStep=21");
    if(StringUtils.isNotBlank(divanUseDto.getMrName())){
    hqlbuf.append(" and f.mroom=(select p.mrId from PubMeetingRoom p where p.mrName=?) ");
    params.add(divanUseDto.getMrName());
    }
            if(StringUtils.isNotBlank(divanUseDto.getEmpName())){
             hqlbuf.append(" and f.proposer=(select h.userId from HrEmp h where h.empName=?) ");
                params.add(divanUseDto.getEmpName());
            }
            if(divanUseDto.getUseingFalg()!=-1){
             System.out.println(".......0"+divanUseDto.getUseingFalg());
             if(divanUseDto.getUseingFalg()==1){
             hqlbuf.append(" and f.mroom in(select p.mrId from PubMeetingRoom p where p.useingFalg=?)"+
                   "  and f.mstart<sysdate and f.mend>sysdate");
                 params.add(divanUseDto.getUseingFalg());
             }
             if(divanUseDto.getUseingFalg()==0){
             hqlbuf.append(" and f.mroom in(select p.mrId from PubMeetingRoom p where p.useingFalg=? "+
                   "or p.useingFalg<>? and f.mend<sysdate or f.mstart>sysdate)");
             params.add(divanUseDto.getUseingFalg());
             params.add(divanUseDto.getUseingFalg());
             }
            }
            if(StringUtils.isNotBlank(divanUseDto.getMstart())){
             if(divanUseDto.getMstart().length()==19){
             if(divanUseDto.getMend()!=null&&!divanUseDto.getMend().equals("")){
             hqlbuf.append(" and f.mstart between to_date('"+divanUseDto.getMstart()+"','yyyy-MM-dd HH24:mi:ss')"+
                   " and to_date('" + divanUseDto.getMend() + "','yyyy-MM-dd HH24:mi:ss')");
                    }else{
                     hqlbuf.append(" and f.mstart >= to_date('"+divanUseDto.getMstart()+"','yyyy-MM-dd HH24:mi:ss')");
                    }
             }else{
             if(divanUseDto.getMend()!=null&&!divanUseDto.getMend().equals("")){
             hqlbuf.append(" and f.mstart >=to_date('"+divanUseDto.getMstart()+"','yyyy-MM-dd') and"+
                   " f.mend <to_date('"+divanUseDto.getMend()+"','yyyy-MM-dd')");
             }else{
             hqlbuf.append(" and f.mstart>=to_date('"+divanUseDto.getMstart()+"','yyyy-MM-dd')");
             }
             }
            }else{
             if(StringUtils.isNotBlank(divanUseDto.getMend())){
             if(divanUseDto.getMend().length()==19){
             hqlbuf.append(" and f.mend <= to_date('"+divanUseDto.getMend()+"','yyyy-MM-dd HH24:mi:ss')");
             }else{
             hqlbuf.append(" and f.mend<=to_date('"+divanUseDto.getMend()+"','yyyy-MM-dd')");
             }
             }
            }
      

  3.   

    public Query setDate(String name,
                         Date date)
      

  4.   

     to_char(diaryInfo.diaryDate,'yyyy-MM-dd')>='2008-10-1'