select * from tpoolhourinfo a where a.workdate between to_date('2008-8-20','yyyy-mm-dd') 
and to_date('2008-8-25','yyyy-mm-dd')有没有办法取到查询条件betwwen  and  里的所有时间数据
就像
2008-8-20
2008-8-21
2008-8-22
2008-8-23
2008-8-24
2008-8-25
因为我现在存的数据不是每天都有的 我要下哪天没有  我就要查询条件的时间了  到底是哪天没有的

解决方案 »

  1.   

    你的查询语句是查询8月20号到8月25号之间的查那天没有应该用高级查询 where xxx<>(条件)
      

  2.   

    我要做一段时间的查询 
    可是涉及到每天的显示
    数据库里不是每天都要数据的 
    我还要知道哪天是没数据的我原来的sql太长了  这个sql其实形式下的我只要能取到查询条件时间段的所有时间字段  我就可以结局我的问题了
      

  3.   

    select * from tpoolhourinfo a where a.workdate not between to_date('2008-8-20','yyyy-mm-dd') 
    and to_date('2008-8-25','yyyy-mm-dd') sql应该是这样的功能  不过要显示哪天内数据
      

  4.   


    SELECT a.*
      FROM TPOOLHOURINFO A,
           (SELECT TO_DATE('2008-8-20', 'yyyy-mm-dd') + ROWNUM - 1 ABC
              FROM DUAL
            CONNECT BY ROWNUM <= TO_DATE('2008-8-25', 'yyyy-mm-dd') -
                       TO_DATE('2008-8-20', 'yyyy-mm-dd') + 1) B
     WHERE A.WORKDATE BETWEEN TO_DATE('2008-8-20', 'yyyy-mm-dd') AND
           TO_DATE('2008-8-25', 'yyyy-mm-dd')
       AND B.ABC = TRUNC(A.WORKDATE(+));
      

  5.   

    楼上的已经把方法写得很明白了。
    SQL> SELECT WORKDATE
      2    FROM A
      3  ;WORKDATE
    --------------------
    8/20/2008
    8/22/2008
    8/23/2008SQL> 
    SQL> SELECT TO_DATE('2008-08-20', 'YYYY-MM-DD') + ROWNUM - 1 ALL_DATES
      2    FROM DUAL
      3  CONNECT BY ROWNUM <= TO_DATE('2008-08-25', 'YYYY-MM-DD') -
      4             TO_DATE('2008-08-20', 'YYYY-MM-DD') + 1
      5  MINUS
      6  SELECT WORKDATE
      7    FROM TPOOLHOURINFO A
     14  ;ALL_DATES
    -----------
    8/21/2008
    8/24/2008
    8/25/2008SQL> 
      

  6.   

    已经说清楚了
    先利用rownum生成查询日期段的每一天,再做关联查询就可以了