본문 바로가기
서버/DB

오라클 날짜 관련

by 아카이sun 2019. 2. 27.

- 현재일자 구하기

SELECT SYSDATE FROM DUAL;

SELECT CURRENT_DATE FROM DUAL;


DATE형식을 STRING FORMAT으로 변형

TO_CHAR( SYSDATE , '데이트형식') FROM DUAL;



데이트형식

CC : 세기

YYYY : 년도

Y,YYY : 년도에 콤마추가

YEAR : 년도를 글자로 변형

Q : 분기

MM : 달

RM : 달을 로마숫자로 표기

MONTH : 달을 글자로 변형

WW:  년도의 주

W : 이달의 주

DDD : 년도의 일자

DD : 월의 일자

D : 주의 일자
DAY : 요일
DY : 요일의 약자
J : Julian Date , 4712BC의 1월1일부터.

HH : 시간 (12)

HH24 : 시간(24)

MI : 분

SS : 초

SSSSS : 자정이후 경과된 초



달의 마지막 일 구하기(DATE형식) 

SELECT LAST_DAY(SYSDATE) FROM DUAL;



달의 마지막 일 구하기(일자만)

SELECT EXTRACT( DAY FROM LAST_DAY(SYSDATE) ) FROM DUAL;
SELECT TO_CHAR(LAST_DAY(SYSDATE), 'DD')  FROM DUAL;


- 1월부터 12월을 표시하고 싶을 때

SELECT LPAD(0+LEVEL, 2, 0) || '월' FROM DUAL CONNECT BY LEVEL <= 12


1일부터  마지막일까지 표시하고 싶을 때

SELECT LPAD(0+LEVEL, 2, 0) || '월' FROM DUAL CONNECT BY LEVEL <= EXTRACT(DAY FROM LAST_DAY(SYSDATE))



24시간을 표시하고 싶을 때

SELECT LPAD(0+LEVEL, 2, 0) || '시' FROM DUAL CONNECT BY LEVEL <= 24



- 월 더하기, 년 더하기 
SELECT ADD_MONTHS(SYSDATE, 1) FROM DUAL // 한달 뒤

SELECT ADD_MONTHS(SYSDATE, 12) FROM DUAL // 1년 뒤 


월이나 년을 빼기 위해서는 -1 / -12 와 같이 사용하면 된다.


- 일 더하기, 빼기

SELECT SYSDATE + 1 FROM DUAL

SELECT SYSDATE - 1 FROM DUAL



- 다음일 구하기

SELECT NEXT_DAY(SYSDATE, 1) FROM DUAL // 다음 일요일


1 : 일요일, 2 : 월요일, 3 : 화요일, 4 : 수요일, 5 : 목요일, 6 : 금요일, 7 : 토요일



- 두 날짜의 차이 일자 구하기

SELECT TO_CHAR( ADD_MONTHS(SYSDATE, 12), 'J') - TO_CHAR(SYSDATE, 'J') FROM DUAL

댓글