[Oracle] 날짜 포맷 관련한 사용법 예시 본문
[Oracle] 날짜 포맷 관련한 사용법 예시
- 2024. 11. 8. 13:46
DB 관련 프로그램을 진행할 경우,
때때로 날짜와 관련된 쿼리를 사용할 경우가 많다.
하지만 가끔은 그냥 어떤 함수가 있어서
내가 머리 속에서 생각하고 있었던 데이터가 나오도록 짜져있으면 좋겠다는
생각을 가끔 할 경우가 있다.
그래서 날짜 관련한 다양한 예시를 제공하고, 점차 늘려보도록 하겠다.
기본적인 사용 예시 (1년기간에 대한 다양한 날짜 포맷)
SELECT
TO_CHAR(StartDT,'YYYYMMDD') AS YMD
, TO_CHAR(StartDT,'MON') AS MONTH_KOR /* 요일_한글(일~토) */
, TO_CHAR(StartDT,'D') AS DAY_NUM /* 요일_숫자반환 : 1일(일)~7(토) */
, TO_CHAR(StartDT,'DY') AS DAY_KOR /* 요일_한글(일~토) */
, TO_CHAR(StartDT,'DAY') AS DAY_KOR_LONG /* 요일_한글 (일요일~토요일) */
, TO_CHAR(StartDT,'DDD') AS DAY_COUNT /* 연간일수 (365일 또는 366일 기준) */
, TO_CHAR(StartDT,'WW') AS WEEK_YEAR /* 연간주차(53주 기준) */
, TO_CHAR(StartDT,'IW') AS WEEK52_YEAR /* 연간주차(52주 기준) */
, TO_CHAR(StartDT,'W') AS WEEK_MONTH /* 월주차(월내 주차 -> 정확하지 않음) */
, TO_CHAR(StartDT,'Q') AS QURTER /* 분기 (1~4분기) */
FROM
(
SELECT
TO_DATE('20240101','YYYYMMDD') + LEVEL - 1 AS StartDT
FROM
DUAL
CONNECT BY LEVEL <= LAST_DAY(TO_DATE('20240101','YYYYMMDD')) - TO_DATE('20240101','YYYYMMDD') + 1
) A
월 주차가져오기 (현재 달력에서 보는 주차, 일 ~ 토)
SELECT
CEIL((TO_NUMBER(SUBSTRB('20240602', -2, 2)) + 7
- TO_NUMBER(TO_CHAR(TO_DATE('20240602', 'YYYYMMDD'),'D')))/7) AS WEEK_1
FROM
DUAL
특정월의 주별 시작일과 종료일 구하기
WITH WEEK_TEMP AS
(
SELECT
TO_DATE('20241101', 'YYYYMMDD') SDT
, LAST_DAY(TO_DATE('20241101', 'YYYYMMDD')) EDT
FROM
DUAL)
SELECT
TO_CHAR(SDT, 'w') IW
, TO_CHAR(SDT, 'YYYYMMDD') START_DT_W
, TO_CHAR(SDT + 6, 'YYYYMMDD') END_DT_W
FROM
(
SELECT
TRUNC(SDT, 'iw') + LEVEL * 7 - 7 SDT
FROM
WEEK_TEMP
CONNECT BY LEVEL <= (TRUNC(EDT, 'iw') - TRUNC(SDT, 'iw')) / 7 + 1)
일단 여기까지 정리하고 추가적으로 나올 때마다 업데이트 하도록 하겠다.
'DB관련 > Oracle' 카테고리의 다른 글
ERwin에서 코멘트나 PK명칭 자동 반영처리 (0) | 2023.03.07 |
---|---|
테이블, 컬럼 정보, DB사용량 조회 등 (0) | 2021.01.24 |
오라클 동적 쿼리 생성 방안 (0) | 2021.01.24 |
오라클 함수 정리 (0) | 2021.01.24 |
Oracle Sql Developer 실행 안됨 현상 및 java.exe잘못 맵핑 해결 방법 (0) | 2021.01.21 |
RECENT COMMENT