[Oracle] 오라클 날짜 더하기 빼기 방법 (DATEADD)

오라클 SQL에서는 날짜 데이터에 대해 시간 간격을 더하거나 빼는 연산이 자주 필요하다. 이때 가장 기본적인 방법은 +, - 연산자를 사용하여 값을 더하거나 빼는 방식이며, 또 다른 방법은 INTERVAL 키워드를 사용하여 명시적인 시간 단위를 지정하는 방식이다. SYSDATE + 1처럼 단순한 덧셈은 직관적이고 빠르게 사용할 수 있지만, INTERVAL '2' HOUR, INTERVAL '3 10' DAY TO HOUR처럼 INTERVAL 키워드를 사용하면 보다 명확하게 단위를 표현할 수 있어 가독성과 유지보수 측면에서 강점이 있다.

 

목차

일반 수식을 사용하여 날짜를 더하거나 빼는 방법

SELECT SYSDATE
     , SYSDATE + 1 --1일 더하기
     , SYSDATE - 1 --1일 빼기
  FROM dual

 

 

날짜에서 플러스( + ), 마이너스( - ) 연산자를 사용하여 일수를 더하거나 뺄 수 있다.

 

날짜에서 시, 분, 초를 더하는 방법

SELECT SYSDATE
     , SYSDATE + 5/24         AS hour --5시간 더하기 
     , SYSDATE + 5/(24*60)    AS min  --5분 더하기
     , SYSDATE + 5/(24*60*60) AS sec  --5초 더하기
  FROM dual

 

 

주어진 수치값을 일수로 환산하여 연산을 하면 된다.

 

SYSDATE + 5/24

5/24 = 0.20833일이므로, 현재 날짜에 5시간이 더해진다.

 

SYSDATE + 5/(24*60)

5/(24×60) = 0.003472222일이므로, 현재 날짜에 5분이 더해진다.

 

SYSDATE + 5/(24*60*60)

5/(24×60×60) = 0.000057870일이므로, 현재 시간에 5초가 더해진다.

 

날짜에서 시, 분, 초를 빼는 방법

SELECT SYSDATE
     , SYSDATE - 5/24         AS hour --5시간 빼기 
     , SYSDATE - 5/(24*60)    AS min  --5분 빼기
     , SYSDATE - 5/(24*60*60) AS sec  --5초 빼기
  FROM dual

 

 

동일한 연산식을 사용하여 수치값을 일수로 환산하여 시, 분, 초를 뺄 수 있다.

 

ADD_MONTHS 함수를 사용하여 개월 수를 더하거나 빼는 방법

SELECT SYSDATE
     , ADD_MONTHS(SYSDATE, 1)  --1개월 더하기
     , ADD_MONTHS(SYSDATE, -1) --1개월 빼기
  FROM dual

 

 

ADD_MONTHS 함수를 사용하여 날짜에서 개월 수를 쉽게 더하거나 뺄 수 있다.

 

INTERVAL을 사용하여 날짜를 더하거나 빼는 방법

SELECT SYSDATE
     , SYSDATE + INTERVAL '1' DAY --1일 더하기
     , SYSDATE - INTERVAL '1' DAY --1일 빼기
  FROM dual

 

 

INTERVAL 키워드를 사용하여 일수를 쉽게 더하거나 뺄 수 있다.

문장이 조금 길어 보이지만, 직관적이고 날짜 관련 다양한 연산을 쉽게 할 수 있기 때문에 위의 방법을 추천한다.

 

날짜에서 시, 분, 초를 더하는 방법

SELECT SYSDATE
     , SYSDATE + INTERVAL '5' HOUR   AS hour --5시간 더하기 
     , SYSDATE + INTERVAL '5' MINUTE AS min  --5분 더하기
     , SYSDATE + INTERVAL '5' SECOND AS sec  --5초 더하기
  FROM dual

 

 

DAY, HOUR, MINUTE, SECOND 키워드를 사용하여 일, 시, 분, 초를 쉽게 더하거나 뺄 수 있다.

 

날짜에서 시, 분, 초를 빼는 방법

SELECT SYSDATE
     , SYSDATE - INTERVAL '5' HOUR   AS hour --5시간 빼기 
     , SYSDATE - INTERVAL '5' MINUTE AS min  --5분 빼기 
     , SYSDATE - INTERVAL '5' SECOND AS sec  --5초 빼기 
  FROM dual

 

 

날짜에서 년, 월을 빼는 방법

SELECT SYSDATE
     , SYSDATE + INTERVAL '1' YEAR  --1년 더하기
     , SYSDATE + INTERVAL '1' MONTH --1개월 더하기
  FROM dual

 

 

INTERVAL 키워드를 사용하면 년과 개월수도 쉽게 더하거나 뺄 수 있다.

 

날짜에서 복합 시간을 계산하는 방법

SELECT SYSDATE
     , SYSDATE + INTERVAL '02:10' HOUR TO MINUTE   AS hour_to_min --2시간10분 더하기
     , SYSDATE + INTERVAL '01:30' MINUTE TO SECOND AS min_to_sec  --1분30초 더하기
  FROM dual

 

 

INTERVAL 키워드를 활용해 복합 시간 단위(시:분, 분:초)를 쉽게 더하거나 뺄 수 있다.

 

다양한 복합 형식 예시

 형식  의미
 INTERVAL '3 12' DAY TO HOUR  3일 12시간
 INTERVAL '2 04:30' DAY TO MINUTE  2일 4시간 30분
 INTERVAL '1 10:15:20' DAY TO SECOND  1일 10시간 15분 20초
 INTERVAL '12:45' HOUR TO MINUTE  12시간 45분
 INTERVAL '25:10:05' HOUR TO SECOND  25시간 10분 5초
 INTERVAL '33:20' MINUTE TO SECOND  33분 20초
 

[Oracle] 하루 전 날짜 구하는 방법

오라클에서 하루 전 날짜, 내일 날짜를 구하기 위해서는 날짜에서 원하는 일수만큼 정수를 빼거나 더하면 된다. 다른 데이터베이스에서는 DATEADD 함수를 사용하기도 하지만 오라클에는 별도의

gent.tistory.com

 

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

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

gent.tistory.com

 

[Oracle] 오라클 두 날짜 사이 일수 계산 (일, 시, 분 표시)

오라클 SQL에서 두 날짜 사이의 차이를 계산할 때는 빼기(-) 연산자를 사용하여 두 날짜를 빼 주면 된다. 날짜에 시간이 포함되어 있다면 소수점이 포함된 일수로 반환될 수 있으므로 주의해야 한

gent.tistory.com

 

[Oracle] 두 날짜 개월 수 계산 방법 (MONTHS_BETWEEN)

오라클에서 두 날짜의 월 차이를 계산해서, 개월 수를 산출할 때는 MONTHS_BETWEEN 함수를 사용한다. 개월 수 계산은 나이, 근속일수를 계산할 때 자주 사용하며, 개월 수를 산출할 때는 함수의 첫 번

gent.tistory.com

 

 

댓글

Designed by JB FACTORY