오라클은 날짜 데이터를 다루는 함수도 다양하게 제공한다.
연산 | 설명 |
날짜데이터 + 숫자 | 날짜 데이터보다 숫자만큼 일수 이후의 날짜 |
날짜데이터 - 숫자 | 날짜 데이터보다 숫자만큼 일수 이전의 날짜 |
날짜데이터 - 날짜데이터 | 두 날짜 데이터 간의 일수 차이 |
날짜데이터 + 날짜 데이터 | ★ 연산 불가, 지원하지 않음 ★ |
OS의 현재 날짜와 시간을 출력하는 SYSDATE 함수
입력 데이터 없이 현재 날짜 및 시간 정보를 구해준다.
1을 빼거나 더했을 때 결과 날짜가 하루 이전이나 하루 이후 날짜로 출력된다.
몇 개월 이후 날짜를 구하는 ADD_MONTHS 함수
ADD_MONTHS 함수는 특정 날짜에 지정한 개월 수 이후 날짜 데이터를 반환하는 함수이다.
ADD_MONTHS([날짜 데이터(필수)], [더할 개월 수(정수)(필수)]) --기본형식
단순히 날짜 데이터에 몇 개월 더한 결과를 반환하는 간단한 기능이라 별로 사용하지 않을 것 같지만 윤년 등의 이유로
복잡해질 수 있는 날짜 계산을 간단하게 만들어준다.
ex1) 사원이 입사한지 10주년이 되는 날짜를 구하고 싶다면 ADD_MONTHS 함수에 120개월, 즉 10년만큼의 개월 수를 입력하여 날짜를 구하는 것도 가능하다.)
ex2) WHERE절을 통해 특정 연차 미만의 사원을 출력할 수도 있다.
두 날짜 간의 개월 수 차이를 구하는 MONTHS_BETWEEN 함수
MONTHS_BETWEEN([날짜데이터1(필수)],[날짜데이터2(필수)]); --기본형식
MONTHS1과 MONTHS2를 보면 알 수 있듯이 비교 날짜의 입력 위치에 따라 음수 또는 양수가 나올 수 있다.
결괏값은 소수점 단위까지 결과가 나오므로 TRUNC 함수를 사용하여 정수 값을 출력할 수 있다.
돌아오는 요일, 달의 마지막 날짜를 구하는 NEXT_DAY, LAST_DAY 함수
NEXT_DAY함수는 날짜 데이터와 요일 문자열을 입력하고, 입력한 날짜 데이터에서 돌아오는 요일의 날짜를 반환한다.
NEXT_DAY([날짜 데이터(필수)], [요일 문지(필수)]) --기본형식
LAST_DAY 함수는 하나의 날짜 데이터만을 입력받고, 데이터가 속한 달의 마지막 날짜를 반환해 준다.
LAST_DAY([날짜 데이터(필수)]) --기본형식
- NEXT_DAY로는 현재 시스템 시간 기준으로 다음 월요일을 구하고 (5월 2일)
- LAST_DAT로는 현재 시스템 시간 기준으로 그 달의 마지막 날을 구했다. (4월 30일)
날짜를 반올림, 버림을 하는 ROUND, TRUNC 함수
ROUND 함수와 TRUNC 함수는 날짜 데이터를 입력 데이터로 사용할 수도 있다.
소수점 위치 정보를 입력하지 않고 대신 기준이 될 포맷(FORMAT) 값을 지정해 준다.
ROUND([날짜데이터(필수)], [반올림 기준 포맷]); -- 기본형식
TRUNC([날짜데이터(필수)], [버림 기준 포맷]);
오라클에서 날짜 데이터를 사용할 때 기준 포맷 값
포맷 모델 | 기준 단위 |
CC, SCC | 네 자리 연도의 끝 두 자리를 기준으로 사용 (2016년 이면 2050 이하이므로, 반올림할 경우 2001년으로 처리) |
SYYY, YYYY, YEAR, SYEAR, YYY, YY, Y | 날짜 데이터의 해당 연, 월, 일의 7월1일을 기준 (2016년 7월1일 일 경우, 2017년으로 처리) |
IYYY, IYY, IY, I | ISO 8601에서 제정한 날짜 기준년도 포맷을 기준 |
Q | 각 분기의 두번째 달의 16일 기준 |
MONTH, MON, MM, RM | 각 달의 16일 기준 |
WW | 해당 연도의 몇 수(1~53번째 주)를 기준 |
IW | ISO 8601에서 제정한 날짜 기준 해당 연도의 주(week)를 기준 |
W | 해당 월의 주(1~5번째 주)를 기준 |
DDD, DD, J | 해당 일의 정오(12:00:00)를 기준 |
DAY, DY, D | 한 주가 시작되는 날짜를 기준 |
HH, HH12, HH24 | 해당일의 시간을 기준 |
MI | 해당일 시간의 분을 기준 |
※ 날짜 데이터를 사용한 ROUND, TRUNC 함수의 사용은 날짜를 기준으로 삼아야 하는 일부 업무에서 제한적으로 사용되기 때문에 전부 외우기보다는 필요할 때 찾아볼 수 있을 정도만 기억해주면 된다.
'데이터베이스' 카테고리의 다른 글
데이터정의어 - ALTER (0) | 2022.05.06 |
---|---|
데이터정의어 - CREATE문 (0) | 2022.05.06 |
오라클 함수 - 숫자함수 (0) | 2022.04.28 |
오라클 함수- 내장 함수 : 단일행 함수 (0) | 2022.04.21 |
동의어 SYNONYM (0) | 2022.04.21 |