데이터베이스

오라클함수 - 날짜 함수

야생늑대 2022. 4. 28. 19:57
반응형

오라클은 날짜 데이터를 다루는 함수도 다양하게 제공한다.

연산 설명
날짜데이터 + 숫자 날짜 데이터보다 숫자만큼 일수 이후의 날짜
날짜데이터 - 숫자 날짜 데이터보다 숫자만큼 일수 이전의 날짜
날짜데이터 - 날짜데이터 두 날짜 데이터 간의 일수 차이
날짜데이터 + 날짜 데이터 ★ 연산 불가, 지원하지 않음 ★

 

OS의 현재 날짜와 시간을 출력하는 SYSDATE 함수

입력 데이터 없이 현재 날짜 및 시간 정보를 구해준다.

1을 빼거나 더했을 때 결과 날짜가 하루 이전이나 하루 이후 날짜로 출력된다.

 

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

ADD_MONTHS 함수는 특정 날짜에 지정한 개월 수 이후 날짜 데이터를 반환하는 함수이다.

ADD_MONTHS([날짜 데이터(필수)], [더할 개월 수(정수)(필수)])   --기본형식

단순히 날짜 데이터에 몇 개월 더한 결과를 반환하는 간단한 기능이라 별로 사용하지 않을 것 같지만 윤년 등의 이유로 

복잡해질 수 있는 날짜 계산을 간단하게 만들어준다.

ex1) 사원이 입사한지 10주년이 되는 날짜를 구하고 싶다면 ADD_MONTHS 함수에 120개월, 즉 10년만큼의 개월 수를 입력하여 날짜를 구하는 것도 가능하다.)

ex2) WHERE절을 통해 특정 연차 미만의 사원을 출력할 수도 있다. 

※ 입사한지 32년이 되지않은 사원을 출력

 

두 날짜 간의 개월 수 차이를 구하는 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