반응형
데이터베이스에서 날짜와 시간을 다루는 작업은 매우 빈번하게 발생합니다. 오라클 DB는 이러한 작업을 위해 강력한 날짜 함수를 제공합니다. 이 글에서는 SYSDATE, ADD_MONTHS, MONTHS_BETWEEN의 개념과 사용법을 예제와 함께 살펴보겠습니다.
1. SYSDATE: 현재 날짜와 시간 조회
1-1. SYSDATE란?
- SYSDATE는 데이터베이스 서버의 현재 날짜와 시간을 반환합니다.
- 반환 값은 날짜와 시간으로 구성되며, 기본 형식은 YYYY-MM-DD HH24:MI:SS입니다.
1-2. 기본 사용법
SELECT SYSDATE FROM DUAL;
- 해석: 현재 서버의 날짜와 시간을 조회합니다.
- 결과: 예를 들어 2024-12-01 10:15:30과 같은 값이 반환됩니다.
1-3. SYSDATE 활용 예제
예제 1: 특정 형식으로 현재 날짜 출력
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS 현재시간
FROM DUAL;
- 해석: SYSDATE를 '년-월-일 시:분:초' 형식으로 변환하여 출력합니다.
예제 2: 오늘이 속한 연도와 월 확인
SELECT TO_CHAR(SYSDATE, 'YYYY') AS 연도, TO_CHAR(SYSDATE, 'MM') AS 월
FROM DUAL;
- 결과: 현재 날짜를 기준으로 연도와 월이 반환됩니다.
2. ADD_MONTHS: 날짜에 월을 더하거나 빼기
2-1. ADD_MONTHS란?
- ADD_MONTHS 함수는 특정 날짜에 지정한 개월 수를 더하거나 뺍니다.
- 형식: ADD_MONTHS(날짜, 개월수)
- 개월수가 양수이면 미래 날짜를 계산하고, 음수이면 과거 날짜를 계산합니다.
2-2. 기본 사용법
예제 1: 현재 날짜에서 3개월 후 날짜 계산
SELECT ADD_MONTHS(SYSDATE, 3) AS 세달후
FROM DUAL;
- 해석: 현재 날짜에서 3개월을 더한 날짜를 반환합니다.
예제 2: 과거 날짜 계산
SELECT ADD_MONTHS(SYSDATE, -6) AS 여섯달전
FROM DUAL;
- 해석: 현재 날짜에서 6개월 전의 날짜를 반환합니다.
2-3. ADD_MONTHS 활용 예제
예제 3: 특정 날짜의 1년 후 계산
SELECT ADD_MONTHS(DATE '2023-12-01', 12) AS 일년후
FROM DUAL;
- 해석: '2023-12-01' 날짜에서 12개월(1년)을 더한 날짜를 반환합니다.
예제 4: 계약 만료일 계산
SELECT 고객ID, 가입일, ADD_MONTHS(가입일, 12) AS 만료일
FROM 회원;
- 해석: 회원의 가입일로부터 1년 후 만료일을 계산합니다.
3. MONTHS_BETWEEN: 두 날짜 간의 개월 수 계산
3-1. MONTHS_BETWEEN이란?
- MONTHS_BETWEEN 함수는 두 날짜 간의 개월 수를 반환합니다.
- 형식: MONTHS_BETWEEN(날짜1, 날짜2)
- 날짜1에서 날짜2를 뺀 개월 수를 반환합니다.
- 결과는 실수형으로 반환되며, 정밀한 차이를 포함합니다.
3-2. 기본 사용법
예제 1: 현재 날짜와 특정 날짜 간의 개월 수 계산
SELECT MONTHS_BETWEEN(SYSDATE, DATE '2024-01-01') AS 개월수
FROM DUAL;
- 해석: SYSDATE와 2024년 1월 1일 사이의 개월 수를 계산합니다.
예제 2: 과거 날짜와의 차이
SELECT MONTHS_BETWEEN(SYSDATE, DATE '2023-12-01') AS 개월수
FROM DUAL;
- 결과: SYSDATE와 1년 전 날짜 간의 차이가 출력됩니다.
3-3. MONTHS_BETWEEN 활용 예제
예제 3: 직원 근속 기간 계산
SELECT 직원ID, 입사일, TRUNC(MONTHS_BETWEEN(SYSDATE, 입사일) / 12) AS 근속년수
FROM 직원;
- 해석: 입사일부터 현재까지의 개월 수를 12로 나눠 근속 연수를 계산합니다.
예제 4: 대출 기간 계산
SELECT 고객ID, 대출일, MONTHS_BETWEEN(SYSDATE, 대출일) AS 대출개월수
FROM 대출;
- 해석: 대출일부터 현재까지의 개월 수를 계산합니다.
4. 세 날짜 함수의 조합 활용
예제 1: 특정 이벤트까지 남은 개월 수 계산
SELECT ADD_MONTHS(SYSDATE, 6) AS 행사날짜,
MONTHS_BETWEEN(ADD_MONTHS(SYSDATE, 6), SYSDATE) AS 남은개월수
FROM DUAL;
- 해석: 현재 날짜에서 6개월 후 행사를 계획하고, 현재와의 개월 차이를 계산합니다.
예제 2: 계약 갱신 계산
SELECT 고객ID, 계약시작일,
ADD_MONTHS(계약시작일, 24) AS 갱신일,
MONTHS_BETWEEN(ADD_MONTHS(계약시작일, 24), SYSDATE) AS 남은개월수
FROM 계약;
- 해석: 2년 단위 계약 갱신일을 계산하고 남은 기간을 확인합니다.
5. 결론
SYSDATE, ADD_MONTHS, MONTHS_BETWEEN는 오라클 DB에서 날짜와 시간을 다룰 때 필수적인 함수입니다. 각각의 함수는 단독으로도 강력하지만, 함께 사용하면 더욱 효과적으로 날짜 관련 작업을 처리할 수 있습니다. 실무에서는 이들 함수를 활용해 복잡한 날짜 계산 작업을 간단하게 처리할 수 있습니다.
이해하기 어려운 부분이나 추가적으로 알고 싶은 내용이 있다면 댓글로 남겨주세요! 😊
반응형
'Database' 카테고리의 다른 글
오라클 GROUP BY와 HAVING (0) | 2024.12.03 |
---|---|
오라클 CASE와 DECODE로 조건 처리하기 (0) | 2024.12.03 |
오라클 문자열 함수의 핵심 이해: CONCAT, SUBSTR, INSTR (0) | 2024.12.03 |
오라클 SQL 숫자 함수: ROUND, TRUNC, MOD (0) | 2024.12.03 |
오라클 내장 함수 소개 : 함수란 무엇인가? (1) | 2024.12.03 |