본문 바로가기
Data & Programming/Oracle

[오라클-팁] Oracle 날짜/요일/주/월 계산하기

by 눈부셔™ 2017. 2. 6.
728x90

[Oracle-TIP] 날짜, 요일, 주, 월 구하기

Oracle 날짜/요일/주/월 계산하기

가끔 사용하지만, 할때마다 깜빡여서 정리해놓음.

 

--당월의 첫 날짜
SELECT TO_CHAR(TRUNC(SYSDATE,'MM'),'YYYYMMDD') FROM DUAL;

 

--당월 마지막 날짜
SELECT TO_CHAR(LAST_DAY(SYSDATE), 'YYYYMMDD') FROM DUAL;

 

--전월 마지막 날짜
SELECT TO_CHAR(TRUNC(SYSDATE,'MM')-1,'YYYYMMDD') FROM DUAL;

 

--요일 (1=일 ~ 7=토)
SELECT TO_CHAR(SYSDATE, 'D') FROM DUAL;

 

--요일 (한글로 출력)
SELECT TO_CHAR(SYSDATE, 'DY')  FROM DUAL; --//월
SELECT TO_CHAR(SYSDATE, 'DAY') FROM DUAL; --//월요일

 

--당월 마지막 날의 요일 (1=일 ~ 7=토)
SELECT TO_CHAR(LAST_DAY(SYSDATE),'D') FROM DUAL;

 

--당월 첫 주 화요일
SELECT TO_CHAR(NEXT_DAY((TRUNC(SYSDATE,'MM')-1),'화'), 'YYYYMMDD') FROM DUAL;
SELECT TO_CHAR(NEXT_DAY((TRUNC(SYSDATE,'MM')-1),'화요일'), 'YYYYMMDD') FROM DUAL;
SELECT TO_CHAR(NEXT_DAY((TRUNC(SYSDATE,'MM')-1),3), 'YYYYMMDD') FROM DUAL;

 

--당월 마지막 주 화요일
SELECT NEXT_DAY((LAST_DAY(SYSDATE)-7),'화') FROM DUAL;
SELECT NEXT_DAY((LAST_DAY(SYSDATE)-7),'화요일') FROM DUAL;
SELECT NEXT_DAY((LAST_DAY(SYSDATE)-7),3) FROM DUAL;

 

--해당일의 주차 (해당년의 몇번째 주인지)
SELECT TO_CHAR(SYSDATE,'IW') FROM DUAL;

 

--해당주 수요일 날짜
SELECT TO_CHAR(TRUNC(SYSDATE, 'IW')+2, 'YYYYMMDD') FROM DUAL;
 
--마지막주 목요일 (1=일 ~ 7=토)
SELECT NEXT_DAY((LAST_DAY(SYSDATE)-7),5) FROM DUAL;

 

--마지막주 월요일 (1=일 ~ 7=토) 바로 전 날짜
SELECT NEXT_DAY((LAST_DAY(SYSDATE)-7),2)-1 FROM DUAL;

 

--당월 첫주 날 수 (~일요일까지)
SELECT TO_NUMBER(TO_CHAR(NEXT_DAY((TRUNC(SYSDATE,'MM')-1),1),'DD')) FROM DUAL;

 

--당월 마지막주 날 수 (월요일부터~)
SELECT LAST_DAY(SYSDATE) - NEXT_DAY((LAST_DAY(SYSDATE)-7),2) + 1 FROM DUAL;

 

728x90