DUAL 테이블과 CONNECT BY LEVEL 을 이용한 달력(월별일자) 을 구하는 쿼리 입니다.
보통 컬린더 테이블을 만들어 놓으나 사용하나, 없는 경우 유용하게 사용가능합니다.
* 날짜 함수 관련 내용
SELECT SUBSTR(YYYYMMDD,1,6) AS YYYYMM
, YYYYMMDD
,TO_CHAR(TO_DATE(YYYYMMDD, 'YYYYMMDD'), 'DY') DY
FROM
(
SELECT TO_CHAR(SYSDATE,'YYYYMM') || LPAD(LEVEL, 2, '0') AS YYYYMMDD
FROM DUAL CONNECT BY LEVEL < 32
)
WHERE YYYYMMDD <= TO_CHAR(LAST_DAY(SYSDATE),'YYYYMMDD')
* 1월~12월 달력 구하기
SELECT MM.YYYYMM 년월 /* 년월 */
, MM.YYYYMM || DD.DD AS 일자 /* 일자 */
, TO_CHAR(TO_DATE(MM.YYYYMM || DD.DD,'YYYYMMDD'),'MON') AS 월 /* 요일_한글(일~토) */
, TO_CHAR(TO_DATE(MM.YYYYMM || DD.DD,'YYYYMMDD'),'D') AS 요일숫자 /* 요일_숫자반환 : 1일(일)~7(토) */
, TO_CHAR(TO_DATE(MM.YYYYMM || DD.DD,'YYYYMMDD'),'DY') AS 한글요일 /* 요일_한글(일~토) */
, TO_CHAR(TO_DATE(MM.YYYYMM || DD.DD,'YYYYMMDD'),'DAY') AS 한글요일2 /* 요일_한글 (일요일~토요일) */
, TO_CHAR(TO_DATE(MM.YYYYMM || DD.DD,'YYYYMMDD'),'DDD') AS 일수 /* 연간일수 (365일 또는 366일 기준) */
, TO_CHAR(TO_DATE(MM.YYYYMM || DD.DD,'YYYYMMDD'),'WW') AS 주차 /* 연간주차 */
, TO_CHAR(TO_DATE(MM.YYYYMM || DD.DD,'YYYYMMDD'),'Q') AS 분기 /* 분기 (1~4분기) */
FROM
(SELECT YYYYMM /*년월 */
, TO_CHAR(LAST_DAY( TO_DATE(YYYYMM||'01')),'YYYYMMDD') LAST_DY /*월별마지막일자*/
FROM
( SELECT TO_CHAR(SYSDATE,'YYYY') || LPAD(LEVEL, 2, '0') AS YYYYMM
FROM DUAL CONNECT BY LEVEL < 13
)
) MM,
( SELECT LPAD(LEVEL, 2, '0') AS DD
FROM DUAL CONNECT BY LEVEL < 32
) DD
WHERE MM.YYYYMM || DD.DD <= MM.LAST_DY
* 날짜 함수 관련 내용
: 날짜 포맷
Format | 설명 |
YYYY | 4자리 연도 |
YY | 두자리 연도 |
D | Day of week (1-7) |
DAY | 요일(월,화..) |
DD | Day of month (1-31) |
DDD | Day of year (1-366) |
MM | 해당월을 01~12로 표시 |
MONTH | Name of month |
WW | Week of year (1-53) |
IW | Week of year (1-53) 국제 표준 |
W | Week of month (1-5) |
HH24 | Hour of day (0-23) |
HH | Hour of day (1-12) |
MI | Minute (0-59) |
SS | Second (0-59) |
- "WW"와 "IW" 모두 1년의 몇 주차(1~53)로 조회하는 포맷 이다.
- "WW" : 1일에서 7일까지가 1주차로 시작
- "IW" : 실제 달력에 맞게 주차가 계산
'기술' 카테고리의 다른 글
[오라클/티베로] 힌트(hint) 종류 및 사용법 (1) | 2024.11.20 |
---|---|
[오라클/티베로]REGEXP_COUNT 함수 특정문자 사용갯수 COUNT (2) | 2024.11.05 |
[오라클/티베로]LISTAGG / AGGR_CONCAT 함수 사용 (0) | 2024.02.23 |
[오라클 & 티베로]쿼리 캐쉬메모리 옵션 설정 CUCURSOR_SHARING (1) | 2023.12.11 |
[오라클/티베로]테이블상세정보 및 GRANT권한부여리스트,그외OBJECT(함수,프로시저,트리거,JOB)리스트 (0) | 2023.11.07 |