[Oracle] 오라클 SYSDATE 사용법(날짜 빼기 더하기 계산법 등)
- 데이터베이스/[Oracle]
- 2023. 10. 4.
SYSDATE 함수
SYSDATE는 지정된 형식으로 현재 날짜와 시간을 표시하는 함수이다.
SELECT SYSDATE
FROM DUAL;
위와 같은 방식으로 사용할 수 있다.
사용환경에 따라 결괏값은 다르겠지만 보통 일-월-년도와 같이 출력된다.
날짜 포맷 정하기
TO_CHAR() 함수를 통하여 SYSDATE의 포맷을 원하는 대로 정할 수 있다.
SELECT TO_CHAR(SYSDATE, 'YYYY') as "연도"
, TO_CHAR(SYSDATE, 'MM') as "월"
, TO_CHAR(SYSDATE, 'DD') as "일"
, TO_CHAR(SYSDATE, 'HH24') as "시간"
, TO_CHAR(SYSDATE, 'MI') as "분"
, TO_CHAR(SYSDATE, 'SS') as "초"
, TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') as "전체날짜"
FROM DUAL;
위와 같이 연도, 월, 일, 시간, 분, 초를 원하는 포맷으로 뽑아낼 수 있다.
필요한 항목만 뽑아서 쓸 수도 있다. 위와 같은 방식은 SYSDATE 뿐만 아니라 DATE 자료형을 다룰 때도 활용할 수 있다.
날짜형 데이터 연산
일 수 더하고 빼기
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD') as "현재"
, TO_CHAR(SYSDATE+2, 'YYYY-MM-DD') as "2일후"
, TO_CHAR(SYSDATE+30, 'YYYY-MM-DD') as "30일후"
, TO_CHAR(SYSDATE-1, 'YYYY-MM-DD') as "하루 전"
, TO_CHAR(SYSDATE-10, 'YYYY-MM-DD') as "10일 전"
FROM DUAL;
위와 같이 SYSDATE에 숫자를 더하거나 빼면 일을 기준으로 연산을 진행한다.
즉, +1은 1일 뒤를 나타내고 -3은 3일 전을 나타낸다.
일 수를 더하거나 뺄 때 달이 바뀌는 것은 자동으로 계산해 준다.
하지만 일수가 아닌 달이나 연도를 기준으로 연산을 하기엔 불편하다.
이럴 땐 ADD_MONTHS 함수를 사용하면 편하다.
달 수 더하고 빼기 (ADD_MONTHS 함수)
SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD') as "현재"
,TO_CHAR(ADD_MONTHS(SYSDATE,-1),'YYYY-MM-DD') as "한달전"
,TO_CHAR(ADD_MONTHS(SYSDATE,-12),'YYYY-MM-DD') as "일년전"
,TO_CHAR(ADD_MONTHS(SYSDATE, 1),'YYYY-MM-DD') as "한달후"
,TO_CHAR(ADD_MONTHS(SYSDATE, 24),'YYYY-MM-DD') as "2년후"
FROM DUAL;
달수를 더하거나 빼려면 위와 같이 ADD_MONTHS() 함수를 이용하면 간편하다. -1은 한 달 전, +1은 한 달 후를 계산한다.
년도를 기준으로 계산하려면 12개월을 기준으로 계산하면 된다.
참고로 현재 31일 일 때 한 달 전 날짜를 계산하는데 저번 달에 30일까지 밖에 없다면, 31일이 아닌 30일을 반환한다.
반응형
'데이터베이스 > [Oracle]' 카테고리의 다른 글
[Oracle] 오라클 TO_DATE() 함수 사용법, 문자열 날짜 변환하는 법 (0) | 2023.10.12 |
---|---|
[Oracle] 오라클 TO_CHAR() 함수 사용법 (0) | 2023.10.10 |
[Oracle] 오라클 DECODE 함수 사용법 (0) | 2023.08.21 |
[Oracle] 오라클 NULL값 치환하는 법, 오라클 NVL, NVL2 함수 사용법 (0) | 2023.08.17 |
[Oracle] 오라클 숫자 반올림하는 법, ROUND 함수 사용법, 날짜 반올림하는 법 (0) | 2023.07.31 |