date and time diff

select * from (
SELECT SHIFT_START_DATE,SHIFT_START_TIME,SHIFT_END_DATE,SHIFT_END_TIME,
  (TO_NUMBER( SUBSTR(NUMTODSINTERVAL(TO_DATE(SHIFT_END_DATE || ' ' || SHIFT_END_TIME , 'DD/MM/YY HH24:MI:SS') - TO_DATE(SHIFT_START_DATE || ' ' || SHIFT_START_TIME, 'DD/MM/YY HH24:MI:SS'), 'DAY'), 02, 9)) * 24) +
  (TO_NUMBER( SUBSTR(NUMTODSINTERVAL(TO_DATE(SHIFT_END_DATE || ' ' || SHIFT_END_TIME , 'DD/MM/YY HH24:MI:SS') - TO_DATE(SHIFT_START_DATE || ' ' || SHIFT_START_TIME, 'DD/MM/YY HH24:MI:SS'), 'DAY'), 12, 2)))  ||
              SUBSTR(NUMTODSINTERVAL(TO_DATE(SHIFT_END_DATE || ' ' || SHIFT_END_TIME , 'DD/MM/YY HH24:MI:SS') - TO_DATE(SHIFT_START_DATE || ' ' || SHIFT_START_TIME, 'DD/MM/YY HH24:MI:SS'), 'DAY'), 14, 6) AS dateDiff
 
FROM
  SM_EMPLOYEE_SCHEDULES s
WHERE PRS_ID = '219733'
 AND trunc(SHIFT_START_DATE) >= TO_DATE('14-08-2019', 'dd-MM-yyyy')
AND trunc(SHIFT_START_DATE) <= TO_DATE('18-08-2019', 'dd-MM-yyyy')

--and trunc(dateDiff) >= TO_DATE('00/00/00 0:15:00', 'DD/MM/YY HH24:MI:SS')
--and TO_NUMBER(dateDiff) = TO_NUMBER('0:15:00')
ORDER BY SHIFT_START_DATE
) where DATEDIFF <= '0:20:00'

Comments