조건은
10분이면 00:00고
11분이상 01:00입니다.
지금 10분은 처리가 잘 되는데
11분일때도 마찬가지고 00:00 즉 널값이 나옵니다.
TM_STIME, TM_ETIME 에는 규약된 시간이 입력되어 잇어 그 값을 기준으로 해당하는 시간은 제외하고 나머지 시간 값을 출력해 줍니다
예
기준시간
TM_STIME: 07:00, TM_ETIME:: 19:00
입력시간
06:00, 20:00
기준시간을 제외한 결과값 = 02:00
SELECT
CASE
WHEN
(T.TM_STIME - LEAST(T.TM_STIME, T.INFRTM) + GREATEST(T.INTOTM, T.TM_ETIME) - T.TM_ETIME)
* 24 > 0
THEN LPAD((T.TM_STIME - LEAST(T.TM_STIME, T.INFRTM) + GREATEST(T.INTOTM, T.TM_ETIME) - T.TM_ETIME) * 24, 2, '0')||'00'
ELSE NULL
END AS TOTTIME
FROM dual A ,
(SELECT CD_VENR,
ROUND(TO_DATE(TM_STIME, 'HH24:MI'), 'HH24') TM_STIME ,--140 기준시간
ROUND(TO_DATE(TM_ETIME, 'HH24:MI'), 'HH24') TM_ETIME ,
ROUND(TO_DATE('1500', 'HH24:MI') +19/(24*60),'HH24') INFRTM,--입력되는 시간
ROUND(TO_DATE('1511', 'HH24:MI') +19/(24*60),'HH24') INTOTM
FROM dual
) T
처리 방법이 없을까요?
|