[Oracle] 하루 전 날짜 구하는 방법 (어제날짜, 내일날짜)

오라클에서 하루 전 날짜, 내일 날짜를 구하기 위해서는 날짜에서 원하는 일수만큼 정수를 빼거나 더하면 된다. 다른 데이터베이스에서는 DATEADD 함수를 사용하기도 하지만 오라클에는 별도의 함수는 없다. SYSDATE에서 -2, -1, +1, +2 등으로 연산을 하면 오늘의 기준으로 원하는 날짜를 쉽게 구할 수 있다.

 

하루 전 날짜 구하는 방법

SELECT TRUNC(SYSDATE) - 1  --어제(하루전)
     , TRUNC(SYSDATE)      --오늘
     , TRUNC(SYSDATE) + 1  --내일
  FROM dual

 

 

SYSDATE 기준으로 어제 날짜, 내일 날짜를 구할 수 있다.

 

날짜가 문자열인 경우 날짜 형식으로 변환 후 연산

SELECT TO_DATE('20230226', 'YYYYMMDD')
     , TO_DATE('20230226', 'YYYYMMDD') - 1
  FROM dual

 

 

날짜가 문자열인 경우 날짜 형식으로 변환 후 일수를 빼거나 더하면 된다.

 

날짜를 연산하는 다양한 방법

SELECT TRUNC(SYSDATE) - 1
     , TRUNC(SYSDATE) - INTERVAL '1' DAY
  FROM dual

 

 

INTERVAL 키워드를 사용해도 동일한 결과를 얻을 수 있다.

INVERVAL을 사용하면 일자뿐만 아니라 년, 월, 일, 시간, 분, 초를 빼거나 더할 때도 유용하게 사용할 수 있다.

 

시간을 빼고 더하는 방법

SELECT SYSDATE
     , SYSDATE - (2/24)             --2시간 빼기
     , SYSDATE - INTERVAL '2' HOUR  --2시간 빼기
  FROM dual

 

 

시간을 빼고 더할 때는 24시간을 원하는 시간만큼 나눠서 빼줘도 되고, INTERVAL을 사용해도 된다.

 

INVERVAL의 조금 더 자세한 설명은 아래를 참고하면 된다.

 

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

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

gent.tistory.com

 

댓글

Designed by JB FACTORY