[Oracle-TIP] 날짜, 요일, 주, 월 구하기
가끔 사용하지만, 할때마다 깜빡여서 정리해놓음.
--당월의 첫 날짜
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;
'Data & Programming > Oracle' 카테고리의 다른 글
[Oracle-오류] ORA-01722: 잘못된 숫자 형식입니다. (0) | 2023.07.15 |
---|---|
[오라클-팁] 비정형 데이터 컬럼에서 실명번호 찾기 (0) | 2023.07.10 |
[Oracle-오류] ORA-01861 literal does not match format string (리터럴이 형식 문자열과 일치하지 않음) (0) | 2017.04.03 |
[오류] ORA-20000: ORU-10027: buffer overflow, limit of 20000 bytes ORA-06512: "SYS.DBMS_OUTPUT" (0) | 2017.02.02 |
[관리] Oracle 프로세스 확인방법 (0) | 2017.02.01 |