web developer

[sql] oracle date(날짜) 요일 구하기 본문

SQL/Oracle SQL

[sql] oracle date(날짜) 요일 구하기

trueman 2023. 9. 24. 22:20
728x90
728x90

oracle 날짜 요일 구하기


1-1) 요일 구하기 (정수)

SELECT TO_CHAR(SYSDATE, 'yyyy-mm-dd') AS "날짜" 
     , TO_CHAR(SYSDATE, 'd')          AS "요일"
FROM dual;

TO_CHAR 함수의 포맷 인자에 "d"를 입력하면 해당 날짜의 요일이 정수로 반환된다.

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


1-2) 주말(토요일, 일요일) 구하기 

SELECT CASE WHEN TO_CHAR(SYSDATE,'D') IN ('1','7') // 2023-09-24
            THEN '주말'
            ELSE '평일' END AS WEEK_DAY
FROM DUAL;


2) 요일 구하기 (한글)

SELECT TO_CHAR(SYSDATE, 'yyyy-mm-dd') AS "날짜"
     , TO_CHAR(SYSDATE, 'dy')         AS "요일1" 
     , TO_CHAR(SYSDATE, 'day')        AS "요일2"  
FROM dual


3) 특정 기간의 주말 구하기 ( 20230901 ~ 20230924 )

SELECT CASE WHEN TO_CHAR(TO_DATE(DT),'D') IN ('1','7')
            THEN '주말'
            ELSE '평일' END AS WEEK_DAY
FROM (
    SELECT TO_CHAR(TO_DATE(ST_DT, 'YYYYMMDD') + LEVEL - 1, 'YYYYMMDD') AS DT
    FROM ( SELECT '20230901' AS ST_DT,'20230924' AS END_DT
           FROM DUAL )
    CONNECT BY LEVEL <=  TO_DATE(END_DT, 'YYYYMMDD') - TO_DATE(ST_DT, 'YYYYMMDD') + 1
);


출처 : https://yeonyeon.tistory.com/137 

728x90
728x90