[Oracle] Add Minute, INTERVAL, NUMTODSINTERVAL function 사용하는 방법

오라클 데이터베이스에서 분 단위를 추가하여 조회하는 방법을 안내해 드리겠습니다. 이밖에도 좋은 아이디어가 있을 수 있답니다. 😘 예제 자료는 저의 필요에 의해 분 단위만 추가하였는데 응용하여 초, 분, 시 모두 가능합니다.

INTERVAL

Oracle Add Minute

인터벌로 구하는 방법입니다. INTERVAL '1' MINUTE을 원하는 분 단위만큼 더하거나 빼는 방법입니다.

SELECT TO_DATE ('20230131'),
            TO_DATE ('20230131') + :MINUTES * INTERVAL '1' MINUTE
       FROM DUAL;

--EXEC :MINUTES := '100';

TO_DATE ('20230131') TO_DATE ('20230131') + NUMTODSINTERVAL (:MINUTES, 'MINUTE')
-------------------- -----------------------------------------------------------
2023-01-31           2023-01-31 오전 1:40:00

NUMTODSINTERVAL

NUMTODSINTERVAL 함수는 NUM TO DS INTERVAL을 뜻하며, 각각 NUM은 NUMBER, TO는 문자 그대로 TO, DS는 DAY TO SECOND, INTERVAL은 문자 그대로 INTERVAL을 뜻합니다. 함수 형태로 제공하기에 PL/SQL에서 사용할 때에 상기의 INTERVAL 대신 사용하기에 편합니다. INTERVAL을 사용하려면 N에 해당하는 값을 조회하기 위해 다이내믹 쿼리 등을 활용해야 하기 때문입니다.

사용예제는 다음과 같습니다. 날짜 변수에 NUMTODSINTERVAL 및 숫자와 단위를 입력해 주세요.
인터벌 유닛은 다음과 같습니다.

  • 'DAY'
  • 'HOUR'
  • 'MINUTE'
  • 'SECOND'
SELECT TO_DATE ('20230131'),
            TO_DATE ('20230131') + NUMTODSINTERVAL (:MINUTES, 'MINUTE')
       FROM DUAL;

--EXEC :MINUTES := '100';

TO_DATE ('20230131') TO_DATE ('20230131') + NUMTODSINTERVAL (:MINUTES, 'MINUTE')
-------------------- -----------------------------------------------------------
2023-01-31           2023-01-31 오전 1:40:00

댓글