[Oracle] 하루 전 날짜 구하는 방법 (어제날짜, 내일날짜)
- 데이터베이스/오라클
- 2023. 2. 26.
오라클에서 하루 전 날짜, 내일 날짜를 구하기 위해서는 날짜에서 원하는 일수만큼 정수를 빼거나 더하면 된다. 다른 데이터베이스에서는 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의 조금 더 자세한 설명은 아래를 참고하면 된다.