상세 컨텐츠

본문 제목

[ORACLE] 날짜 처리 함수

DataBase/ORACLE

by Chan.94 2021. 11. 8. 17:30

본문

반응형

DB에는 문자형식으로 일자가 들어가있는 경우가 많다. EX) 20211022

SQL을 작성하다보면 어떠한 경우에는 월말이 기준이되어야하고 두 일자가 몇일이 차이가나는지 등등 다양한 경우를 고려해야하는 경우가 온다.

자주 사용하는 함수만 정리해 보도록 하겠다.

 

ADD_MONTHS

몇개월 후, 이전의 일자를 구한다.

이전 일자를 구하려면 -를 입력해주면 된다.

SELECT ADD_MONTHS(SYSDATE, 1) FROM DUAL;
SELECT ADD_MONTHS(SYSDATE, -1) FROM DUAL;

 

LAST_DAY

해당월의 마지막일자를 구한다.

SELECT LAST_DAY(SYSDATE) FROM DUAL;

 

TRUNC

TRUNC 함수는 보통 소수점 아래를 자를 때 많이 사용한지만 다른 옵션들도 가지고 있다.

시간을 초기화 한다거나 일, 월을 초기화할 수가 있다.

SELECT TRUNC(SYSDATE, 'YYYY') AS YEAR	-- 2022-01-01
     , TRUNC(SYSDATE, 'MM') AS MONTH	-- 2022-07-01
FROM DUAL

 

TO_CHAR

TIMESTAMP형식으로 리턴을 주기에 우리는 문자열로 자주 변환하여 사용하겠다.

자세한 내용은 다음 포스팅을 참고하기 바란다.

[DataBase/ORACLE] - [ORACLE] TO_CHAR 기본 사용법

SELECT TO_CHAR(ADD_MONTHS(SYSDATE, 1), 'YYYYMMDD') FROM DUAL;
SELECT TO_CHAR(LAST_DAY(SYSDATE), 'YYYYMMDD') FROM DUAL;


두 날짜 사이의 일수 차이

위에 정리한 함수를 사용하여 두 일자사이의 일수 차이를 계산해 보겠다.

SELECT 
	TO_DATE(TO_CHAR(ADD_MONTHS(SYSDATE, 1), 'YYYYMMDD'),'YYYY-MMDD') 
	- 
	TO_DATE(TO_CHAR(LAST_DAY(SYSDATE),'YYYYMMDD'), 'YYYY-MM-DD') 
FROM DUAL;

관련 포스팅

[DataBase/ORACLE] - [ORACLE] 모든 테이블, 컬럼 조회

[DataBase/ORACLE] - [ORACLE] 문자열 처리 함수

반응형

관련글 더보기

댓글 영역

>