17,140
社区成员




SELECT P_ENDTIME-P_STARTTIME-NVL(SUM(LEAST(E,P_ENDTIME)-GREATEST(S,P_STARTTIME)),0)
FROM(
select TRUNC(P_STARTTIME)+rownum-1+12/24 S,
TRUNC(P_STARTTIME)+rownum-1+13.5/24 E
from dual connect by rownum<=TRUNC(P_ENDTIME)-TRUNC(P_STARTTIME)+1
)WHERE S<=P_ENDTIME AND E>=P_STARTTIME
SELECT P_ENDTIME-P_STARTTIME-SUM(LEAST(E,P_ENDTIME)-GREATEST(S,P_STARTTIME))
FROM(
select TRUNC(P_STARTTIME)+rownum-1+12/24 S,
TRUNC(P_STARTTIME)+rownum-1+13.5/24 E
from dual connect by rownum<=TRUNC(P_ENDTIME)-TRUNC(P_STARTTIME)+1
)WHERE S<=P_ENDTIME AND E>=P_STARTTIME