[Oracle] 오라클 시간, 분, 초 더하기 빼기 (INTERVAL)

오라클 날짜타입의 값에서 시간을 빼거나 더하기 위해서는, 기본으로 제공해주는 오라클 함수가 없기 때문에 별도의 연산작업을 해줘야 한다.


시간, 분, 초를 더하기나 빼기 위해서는 일반적으로 1/24 [1시간], 1/(24*60) [1분], 1/(24*60*60) [1초]를 사용하여 연산을 한다. 그러나 INTERVAL이라는 오라클 키워드를 조금 더 명시적으로 쿼리를 작성할 수 있다.


일반수식을 이용하는 방법

 

WITH temptable AS ( SELECT to_date('2019-08-21 08:00:00', 'yyyy-mm-dd hh24:mi:ss') curtime FROM dual ) SELECT curtime , curtime + 5/24 hour --5시간 더하기 , curtime + 5/(24*60) min --5분 더하기 , curtime + 5/(24*60*60) sec --5초 더하기 FROM temptable


---------------------------------


WITH temptable AS ( SELECT to_date('2019-08-21 08:00:00', 'yyyy-mm-dd hh24:mi:ss') curtime FROM dual ) SELECT curtime , curtime - 10/24 hour --10시간 빼기 , curtime - 10/(24*60) min --10분 빼기 , curtime - 10/(24*60*60) sec --10초 빼기 FROM temptable


---------------------------------



INTERVAL 키워드를 이용하는 방법


WITH temptable AS ( SELECT to_date('2019-08-21 08:00:00', 'yyyy-mm-dd hh24:mi:ss') curtime FROM dual ) SELECT curtime , curtime + (interval '5' hour) hour2 --5시간 더하기 , curtime + (interval '5' minute) min2 --5분 더하기 , curtime + (interval '5' second) sec2 --5초 더하기 FROM temptable


---------------------------------


WITH temptable AS ( SELECT to_date('2019-08-21 08:00:00', 'yyyy-mm-dd hh24:mi:ss') curtime FROM dual ) SELECT curtime , curtime - (interval '10' hour) hour2 --10시간 빼기 , curtime - (interval '10' minute) min2 --10분 빼기 , curtime - (interval '10' second) sec2 --10초 빼기 FROM temptable


---------------------------------


※ INTERVAL 여러가지 활용 방법

SYSDATE + (INTERVAL '1' YEAR --1년 더하기 SYSDATE + (INTERVAL '1' MONTH) --1개월 더하기 SYSDATE + (INTERVAL '1' DAY) --1일 더하기 SYSDATE + (INTERVAL '1' HOUR) --1시간 더하기 SYSDATE + (INTERVAL '1' MINUTE) --1분 더하기 SYSDATE + (INTERVAL '1' SECOND) --1초 더하기 SYSDATE + (INTERVAL '02:10' HOUR TO MINUTE) --2시간10분 더하기 SYSDATE + (INTERVAL '01:30' MINUTE TO SECOND) --1분30초 더하기


 

댓글

Designed by JB FACTORY