表:ttextinfo
字段:spare6  varchar(50)
      keyno   varchar(50)
      trtime  date
      origin  varchar(1)
要求是这样:查询出从晚上18点到第二天早上8:59:59的数据
SQL>select spare6,count(spare6) from ttextinfo where substr(keyno,1,5)='R5101' and to_char(trtime,'yyyymm')='200911'
and to_char(trtime,'hh24miss') btween ('180000'-'235959') and ('000000'-'085959') and origin='1' group by      spare6;
就是不知道那部分时间btween ('180000'-'235959') and ('000000'-'085959')怎么写了,我写出来的记录为空,各位给个?

解决方案 »

  1.   

    不用between and 
    试试  trunc(date)  再group by  一下 
      

  2.   

    oracle 日期范围查询问题 
    select * from aaa where to_char(rq,'yyyymmdd') between '20011101' and '20020301';
    直接在rq上加函数,如果应用大(这个表内数据很多时),查询速度会相当慢的,为了提高查询速度,强烈建议这样书写:
    select * from aaa where rq between to_date('2001-11-01','yyyy-MM-DD') and to_date('2002-03-01' ,'YYYY-MM-DD');
    推荐使用
    select * from aaa where rq>;=to_date('2001-11-01','yyyy-MM-DD') and rq<=to_date('2002-03-01' ,'YYYY-MM-DD');用between的函数可能会慢些
      

  3.   

    select *
      from tpssm01 t
     where t.rec_create_time between
           to_char((trunc(sysdate) + 20 / 24), 'yyyymmddhh24miss')--当天的20:00:00
           and
           to_char((((trunc(sysdate + 1) + 9 / 24 - 1 / 86400))),--明天8:59:59
                   'yyyymmddhh24miss');