DB/Oracle

[Oracle] Oracle Function(오라클 함수) - 날짜 함수

EARTH_ROOPRETELCHAM 2022. 5. 7. 22:53
728x90
반응형

들어가기 전에

이 포스팅은 오라클로 배우는 데이터베이스 입문(이지훈 저)을 읽으면서 기억하고자 하는 내용 및 추가적으로 알아본 내용을 담았습니다. 책 전체 내용을 보시고 싶으신 분은 책을 구매하시어 읽어보시길 바랍니다.

오라클 함수

오라클 함수란, 특정한 결과 값을 얻기 위해 데이터를 입력할 수 있는 특수 명령어를 의미합니다. 오라클 함수는 함수를 제작한 주체를 기준으로 크게 2가지로 나뉩니다.

  • 내장 함수(built-in function): 오라클에서 기본으로 제공하고 있는 함수
    • 내장 함수는 입력 방식에 따라 데이터 처리에 사용하는 행이 나뉩니다.
    • 단일행 함수(single-row function): 데이터가 한 행씩 입력되고, 입력된 각 행별로 결과가 하나씩 나오는 함수
    • 다중행 함수(multiple-row function): 여러 행이 입력되어 하나의 행으로 결과가 반환되는 함수
  • 사용자 정의 함수(user-defined function): 사용자가 필요에 의해 직접 정의한 함수

단일행 함수와 다중행 함수(오라클로 배우는 데이터베이스 입문, 129p)

이번 시간에는 Oracle에서 제공하는 내장 함수 중 단일행 함수인 날짜 함수에 대해 알아보도록 하겠습니다.

  • 오라클에서는 날짜 데이터(DATE형 데이터)는 간단한 연산이 가능합니다. 다만, 날짜 데이터끼리의 덧셈은 불가능합니다.
연산 설명
날짜 데이터 + 숫자 날짜 데이터보다 숫자만큼 일수 이후의 날짜
날짜 데이터 - 숫자 날짜 데이터보다 숫자만큼 일수 이전의 날짜
날짜 데이터 - 날짜 데이터 두 날짜 데이터 간의 일수 차이
날짜 데이터 + 날짜 데이터 연산 불가

Oracle Database가 존재하는 서버의 OS 현재 날짜와 시간을 보여주는 SYSDATE 함수

SYSDATE 함수 사용 예시

몇 개월 이후 날짜를 구하는 ADD_MONTHS 함수

ADD_MONTHS([날짜 데이터(필수)], [더할 개월 수(정수)(필수)])

ADD_MONTHS 함수 사용 예시

ADD_MONTHS의 경우, 윤년 등의 이유로 복잡해질 수 있는 날짜 계산을 간단하게 할 수 있도록 도와줍니다.

두 날짜 간의 개월 수 차이를 구하는 MONTHS_BETWEEN 함수

MONTHS_BETWEEN([날짜 데이터1(필수)], [날짜 데이터2(필수)])

MONTHS_BETWEEN 함수는 두 개의 날짜 데이터를 입력하고 두 날짜 간의 개월 수 차이를 구하는 데 사용합니다.

MONTHS_BETWEEN 함수 사용 예시

  • 날짜 데이터1에서 날짜 데이터2로 이동할 때에 몇 개월 차이인지 보는 것이기 때문에 결과값은 양수 또는 음수가 모두 나올 수 있습니다.
  • MONTHS_BETWEEN 함수의 결과값은 소숫점 단위까지 나오므로, TRUNC 함수와 함께 사용하여 개월 수 차이를 정수로 출력할 수도 있습니다.

돌아오는 요일, 달의 마지막 날짜를 구하는 NEXT_DAY, LAST_DAY 함수

NEXT_DAY

NEXT_DAY([날짜 데이터(필수)], [요일 문자(필수)])

NEXT_DAY 함수는 주어진 날짜를 이후로 처음으로 오는 주어진 요일의 날짜를 출력해주는 함수입니다.

LAST_DAY

LAST_DAY([날짜 데이터(필수)])

LAST_DAY 함수는 주어진 날짜가 속한 달의 마지막 날짜를 반환해주는 함수입니다.

NEXT_DAY 함수와 LAST_DAY 함수 사용 예시

날짜의 반올림, 버림을 하는 ROUND, TRUNC 함수

숫자 함수에서 보았던 ROUNDTRUNC 함수는 날짜 데이터에도 사용할 수 있습니다.

입력 데이터 종류 사용 방식
숫자 데이터 ROUND([숫자(필수)], [반올림 위치(선택) - default 0])
TRUNC([숫자(필수)], [버림 위치(선택) - default 0])
날짜 데이터 ROUND([날짜데이터(필수)], [반올림 기준 포맷(선택) - default 'DDD'])
TRUNC([날짜데이터(필수)], [버림 기준 포맷(선택) - default 'DDD'])

ROUNDTRUNC 함수 사용 시, 반올림/버림 기준 포맷은 아래와 같습니다.

오라클로 배우는 데이터베이스 입문(이지훈 저, 155p)
날짜 데이터에 사용하는 ROUND 함수와 TRUNC 함수 사용 예시

참고 자료

  • 오라클로 배우는 데이터베이스 입문(이지훈 저)
728x90
반응형