使用下面的sql可以查出分钟集合,根据自己需要过滤求和不行么?
SELECT TO_CHAR(S_DT + (ROWNUM - 1) * 1 / 1440, 'hh24:mi')
   FROM (SELECT TO_DATE('00:00', 'hh24:mi') S_DT,
                TO_DATE('23:59', 'hh24:mi') E_DT
           FROM DUAL) T 
 CONNECT BY S_DT + (ROWNUM - 1) * 1 / 1440 <= E_DT;

解决方案 »

  1.   

    WITH sj AS
    (SELECT TO_CHAR(S_DT + (ROWNUM - 1) * 1 / 1440, 'hh24:mi') dd
       FROM (SELECT TO_DATE('00:00', 'hh24:mi') S_DT,
                    TO_DATE('23:59', 'hh24:mi') E_DT
               FROM DUAL) T 
     CONNECT BY S_DT + (ROWNUM - 1) * 1 / 1440 <= E_DT)
    SELECT COUNT(1) FROM sj WHERE 
    not(dd>'08:00' AND dd<'09:00') AND 
    not(dd>'10:00' AND dd<'10:30') AND 
    not(dd>'10:10' AND dd<'11:20') 
      

  2.   

    这都类似于   两日期之间的间隔日期,基本上都可以使用统一方法变换,connect by