본문 바로가기

BackEnd/DataBase - Oracle

[Oracle] 날짜 함수

날짜를 조작할 수 있는 함수이다

 

SYSDATE

현재 데이터베이스 서버의 날짜 및 시간을 반환해준다 (시간은 보이지 않지만 포함되어 있다)

 

 

날짜를 이용한 산술 연산식

 

연산 결과 설명
날짜 + 숫자 날짜 날짜에 일 수를 더한다
날짜 - 숫자 날짜 날짜에서 일 수를 뺀다
날짜 - 날짜 일 수 한 날짜를 다른 날짜에서 뺀다
날짜 + 숫자/24 날짜 날짜에 시간 수를 더한다
(날짜 - 날짜)/7 몇 주 몇 주가 지났는 지 계산

 

 

MONTHS_BETWEEN

두 날짜 간의 월 수를 구한다

 

MONTHS_BETWEEN('01-SEP-95', '11-JAN-94') => 19.6774194
-- 보이지 않는 서버의 시간도 포함되어 있어 소수점으로 표현 되었음

 

 

ADD_MONTHS

월을 더하거나 뺀다

 

ADD_MONTHS('31-JAN-96', 1) => '29-FEB-96'
-- 1월에서 1월을 더해 2월 말 일로 표현

 

 

NEXT_DAY

돌아오는 요일의 날짜를 구한다

 

NEXT_DAY('01-SEP-95', 'FRIDAY') => '08-SEP-95'
-- 돌아오는 다음 금요일은 95년 9월 8일이다

 

 

LAST_DAY

월 말일이 몇 일인지 알 수 있다

 

LAST_DAY('01-FEB-95') => '28-FEB-95'
-- 이번 달(1월)의 말 일은 28일로 표현이 되었다

 


ROUND

하위 단계(년도 > 월 > 일 > 시간) 순서를 기준으로 반올림한다, (Ex : Month -> DD를 기준으로 Month를 반올림)

 

-- SYSDATE = '25-JUL-03' 이라고 가정했을 때

ROUND(SYSDATE, 'MONTH') => '01-AUG-03'
-- 월을 반올림 후 일은 제일 가까운 1일로 표현

ROUND(SYSDATE, 'YEAR') => '01-JAN-04'
-- 년도를 반올림 후 월/일을 제일 가까운 1월/일로 표현

 


TRUNC

하위 단계(년도 > 월 > 일 > 시간) 순서를 기준으로 절단한다, (Ex : Year -> 월, 일, 시간 초기화)

 

-- SYSDATE = '25-JUL-03' 이라고 가정했을 때

TRUNC(SYSDATE, 'MONTH') => '01-JUL-03'
-- 월 아래로 절단하여 일은 제일 가까운 1일로 표현

TRUNC(SYSDATE, 'YEAR') => '01-JAN-03'
-- 년도 아래로 절단하여 월/일을 제일 가까운 1월/일로 표현

 

 

 

TO_CHAR 활용하여 임의의 날짜 형식으로 이용하기

 

TO_CHAR(SYSDATE, 'format_model')
TO_CHAR(SYSDATE, 'YYYY/MM/DD') => 2020/02/12

 

'format_model'은 아래 형식 요소를 따른다

 

요소 결과 (2020년 2월 12일 수요일이라고 가정)
YYYY 2020
YEAR TWENTY TWENTY
MM 02
MONTH 2월 (January)
MON JAN
DY 수 (Wed)
DAY 수요일 (Wednesday)
DD 12

 

'BackEnd > DataBase - Oracle' 카테고리의 다른 글

[Oracle] 그룹으로 묶는 GROUP BY절과 HAVING절  (0) 2020.02.13
[Oracle] 변환 함수  (0) 2020.02.12
[Oracle] 숫자 함수  (0) 2020.02.12
[Oracle] 문자 함수  (0) 2020.02.12
[Oracle] 정렬하는 ORDER BY절  (0) 2020.02.12