728x90
반응형
들어가기 전에
이 포스팅은 오라클로 배우는 데이터베이스 입문(이지훈 저)을 읽으면서 기억하고자 하는 내용 및 추가적으로 알아본 내용을 담았습니다. 책 전체 내용을 보시고 싶으신 분은 책을 구매하시어 읽어보시길 바랍니다.
오라클 함수
오라클 함수란, 특정한 결과 값을 얻기 위해 데이터를 입력할 수 있는 특수 명령어를 의미합니다. 오라클 함수는 함수를 제작한 주체를 기준으로 크게 2가지로 나뉩니다.
- 내장 함수(built-in function): 오라클에서 기본으로 제공하고 있는 함수
- 내장 함수는 입력 방식에 따라 데이터 처리에 사용하는 행이 나뉩니다.
- 단일행 함수(single-row function): 데이터가 한 행씩 입력되고, 입력된 각 행별로 결과가 하나씩 나오는 함수
- 다중행 함수(multiple-row function): 여러 행이 입력되어 하나의 행으로 결과가 반환되는 함수
- 사용자 정의 함수(user-defined function): 사용자가 필요에 의해 직접 정의한 함수
이번 시간에는 Oracle에서 제공하는 내장 함수 중 단일행 함수인 날짜 함수에 대해 알아보도록 하겠습니다.
- 오라클에서는 날짜 데이터(
DATE
형 데이터)는 간단한 연산이 가능합니다. 다만, 날짜 데이터끼리의 덧셈은 불가능합니다.
연산 | 설명 |
---|---|
날짜 데이터 + 숫자 | 날짜 데이터보다 숫자만큼 일수 이후의 날짜 |
날짜 데이터 - 숫자 | 날짜 데이터보다 숫자만큼 일수 이전의 날짜 |
날짜 데이터 - 날짜 데이터 | 두 날짜 데이터 간의 일수 차이 |
날짜 데이터 + 날짜 데이터 | 연산 불가 |
Oracle Database가 존재하는 서버의 OS 현재 날짜와 시간을 보여주는 SYSDATE 함수
몇 개월 이후 날짜를 구하는 ADD_MONTHS 함수
ADD_MONTHS([날짜 데이터(필수)], [더할 개월 수(정수)(필수)])
ADD_MONTHS
의 경우, 윤년 등의 이유로 복잡해질 수 있는 날짜 계산을 간단하게 할 수 있도록 도와줍니다.
두 날짜 간의 개월 수 차이를 구하는 MONTHS_BETWEEN 함수
MONTHS_BETWEEN([날짜 데이터1(필수)], [날짜 데이터2(필수)])
MONTHS_BETWEEN
함수는 두 개의 날짜 데이터를 입력하고 두 날짜 간의 개월 수 차이를 구하는 데 사용합니다.
- 날짜 데이터1에서 날짜 데이터2로 이동할 때에 몇 개월 차이인지 보는 것이기 때문에 결과값은 양수 또는 음수가 모두 나올 수 있습니다.
MONTHS_BETWEEN
함수의 결과값은 소숫점 단위까지 나오므로,TRUNC
함수와 함께 사용하여 개월 수 차이를 정수로 출력할 수도 있습니다.
돌아오는 요일, 달의 마지막 날짜를 구하는 NEXT_DAY, LAST_DAY 함수
NEXT_DAY
NEXT_DAY([날짜 데이터(필수)], [요일 문자(필수)])
NEXT_DAY
함수는 주어진 날짜를 이후로 처음으로 오는 주어진 요일의 날짜를 출력해주는 함수입니다.
LAST_DAY
LAST_DAY([날짜 데이터(필수)])
LAST_DAY
함수는 주어진 날짜가 속한 달의 마지막 날짜를 반환해주는 함수입니다.
날짜의 반올림, 버림을 하는 ROUND, TRUNC 함수
숫자 함수에서 보았던 ROUND
와 TRUNC
함수는 날짜 데이터에도 사용할 수 있습니다.
입력 데이터 종류 | 사용 방식 |
---|---|
숫자 데이터 | ROUND([숫자(필수)], [반올림 위치(선택) - default 0]) |
TRUNC([숫자(필수)], [버림 위치(선택) - default 0]) | |
날짜 데이터 | ROUND([날짜데이터(필수)], [반올림 기준 포맷(선택) - default 'DDD']) |
TRUNC([날짜데이터(필수)], [버림 기준 포맷(선택) - default 'DDD']) |
ROUND
와 TRUNC
함수 사용 시, 반올림/버림 기준 포맷은 아래와 같습니다.
참고 자료
- 오라클로 배우는 데이터베이스 입문(이지훈 저)
728x90
반응형
'DB > Oracle' 카테고리의 다른 글
[Oracle] Oracle Function(오라클 함수) - NULL 처리 함수 (0) | 2022.05.07 |
---|---|
[Oracle] Oracle Function(오라클 함수) - 형 변환 함수 (0) | 2022.05.07 |
[Oracle] Oracle Function(오라클 함수) - 숫자 함수 (0) | 2022.05.07 |
[Oracle] Oracle Function(오라클 함수) - 문자 함수 (0) | 2022.05.07 |
[Oracle] Oracle Database에서 사용되는 연산자 종류 알아보기 (0) | 2022.05.06 |