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
因为我现在存的数据不是每天都有的 我要下哪天没有 我就要查询条件的时间了 到底是哪天没有的
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
因为我现在存的数据不是每天都有的 我要下哪天没有 我就要查询条件的时间了 到底是哪天没有的
可是涉及到每天的显示
数据库里不是每天都要数据的
我还要知道哪天是没数据的我原来的sql太长了 这个sql其实形式下的我只要能取到查询条件时间段的所有时间字段 我就可以结局我的问题了
and to_date('2008-8-25','yyyy-mm-dd') sql应该是这样的功能 不过要显示哪天内数据
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(+));
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>
先利用rownum生成查询日期段的每一天,再做关联查询就可以了