오라클 SQL · 함수와 집계

날짜 함수: SYSDATE, ADD_MONTHS, MONTHS_BETWEEN

날짜는 SQL에서 가장 자주 틀리는 데이터 타입 중 하나다. 오라클은 날짜 전용 함수가 풍부하기 때문에, 형 변환 대신 전용 함수를 정확히 쓰는 습관이 매우 중요하다.

날짜 함수: SYSDATE, ADD_MONTHS, MONTHS_BETWEEN 대표 이미지

이 글에서 꼭 잡아야 할 것

날짜는 SQL에서 가장 자주 틀리는 데이터 타입 중 하나다. 오라클은 날짜 전용 함수가 풍부하기 때문에, 형 변환 대신 전용 함수를 정확히 쓰는 습관이 매우 중요하다.

날짜는 화면에 보이는 형식보다 실제 타입을 먼저 봐야 한다. 문자열처럼 보이더라도 DATE 컬럼일 수 있으며, 포맷은 출력 형식일 뿐 저장 타입 자체는 아니기 때문에 날짜 계산과 표시를 분리해서 생각해야 SQL이 안정적이다.

난이도 초급
모듈 함수와 집계
학습 시간 10분
핵심 키워드 SYSDATE, ADD_MONTHS, MONTHS_BETWEEN

개념 지도와 이해 포인트

현재 시점 `SYSDATE`는 데이터베이스 서버 기준 현재 날짜와 시간을 반환한다. 기준일 계산이나 최근 데이터 조회의 시작점이 된다.
기간 이동 `ADD_MONTHS`는 월 단위 이동에, 날짜 + 숫자 연산은 일 단위 이동에 자주 쓰인다. 월말 처리를 자동으로 고려하는 특성이 중요하다.
차이 계산 `MONTHS_BETWEEN`은 두 날짜 사이 개월 수를 반환한다. 근속 개월, 계약 기간, 할부 개월 계산에 자주 등장한다.
날짜 함수: SYSDATE, ADD_MONTHS, MONTHS_BETWEEN 개념 다이어그램

대표 문법 패턴

SELECT SYSDATE AS current_date,
       ADD_MONTHS(SYSDATE, 3) AS after_three_months,
       MONTHS_BETWEEN(SYSDATE, hire_date) AS months_worked
FROM employees;

SELECT hire_date + 7 AS review_date
FROM employees;

문법 읽는 포인트

  • 날짜 + 숫자는 일(day) 단위 이동이다.
  • `ADD_MONTHS`는 월 단위 계산에서 가장 안전한 기본 함수다.
  • `MONTHS_BETWEEN` 결과는 소수일 수 있다.

핵심 용어

  • SYSDATE
  • ADD_MONTHS
  • MONTHS_BETWEEN

입사 후 90일 평가일 계산하기

일 단위 이동과 월 단위 이동은 비슷해 보여도 의미가 다르다. 30일 후와 한 달 후는 같은 값이 아닐 수 있으므로, 문제 문장을 읽고 어떤 단위를 요구하는지 먼저 구분해야 한다.

SELECT employee_id,
       hire_date,
       hire_date + 90 AS probation_review_date,
       ROUND(MONTHS_BETWEEN(SYSDATE, hire_date), 1) AS months_since_hire
FROM employees
ORDER BY hire_date;

수험 체크포인트와 자주 하는 실수

시험 체크포인트

  • 날짜끼리 빼면 일 수 차이가 나온다는 점을 기억하자.
  • `ADD_MONTHS`와 `MONTHS_BETWEEN`은 오라클 날짜 문제의 핵심 조합이다.
  • 포맷 표시와 실제 DATE 타입을 혼동하지 않는 것이 중요하다.

자주 하는 실수

  • 날짜를 문자열 함수로만 다루려는 실수
  • 한 달과 30일을 같은 의미로 처리하는 실수
  • SYSDATE가 사용자 PC 시간이 아니라 DB 서버 시간을 기준으로 한다는 점을 놓치는 실수

연결 학습

날짜 함수를 익히면 실무형 SQL 해석력이 크게 올라간다. 다음 챕터에서는 형 변환 함수와 일반 함수를 통해 데이터 타입 전환을 정리한다.

댓글 0

작성자 이름과 댓글 내용을 입력하면 바로 등록됩니다. 답글은 한 단계까지 지원하고, 댓글은 최대 200자까지 작성할 수 있습니다.

일반 댓글 작성

댓글을 불러오는 중입니다.

같은 카테고리에서 이어서 읽기

지금 읽은 글과 가까운 흐름의 글 5개를 모아 두었습니다. 바로 앞뒤 문맥을 이어서 읽고 싶을 때 가장 편합니다.