2022.12.21(SQL 매달 셋째주 수요일 구하기)

SaGo_MunGcci·2022년 12월 21일
0

-- 매달 1일이 무슨 요일인지 알고 싶었음
-- 그래서 CONNECT BY LEVEL을 참고해서 구구단 만드는 예제참고하여 1월~12까지 매달 1일이 무슨 요일인지 조회함
-- 매달 1일의 숫자(요일)가 달라지니까 2주더해서 해당 요일을 선택해주면 되지 않을까 싶음 
-- 거기서 3째주 수요일을 검색해옴
-- 그런데 이렇게 하면 내년년도 부터는 날짜가 밀려서 틀림
SELECT TO_DATE('01', 'MM') AS DATETIME FROM DUAL 

SELECT TO_CHAR(SYSDATE, 'D') FROM DUAL 

SELECT DATETIME
      ,DATETIME + 14 + (4-TO_CHAR(DATETIME, 'D')) AS WED

FROM (SELECT TO_DATE(TMONTH, 'mm') AS DATETIME  

  FROM (SELECT LEVEL AS TMONTH 
  
  		FROM DUAL 

        CONNECT BY LEVEL <= 12))
        
SELECT TO_DATE('01', 'MM') AS DATETIME FROM DUAL 

SELECT TO_CHAR(SYSDATE, 'D') FROM DUAL 

팀장님께서 말씀해주신 쿼리


SELECT DATETIME
      ,DATETIME + ( 7 - TO_CHAR(DATETIME, 'D')) + 7 + 4  AS WED


FROM (SELECT TO_DATE(TMONTH, 'mm') AS DATETIME  

  FROM (
  SELECT LEVEL AS TMONTH 
  
      FROM DUAL 

        CONNECT BY LEVEL <= 12)
        )

profile
이리저리 생각만 많은 사고뭉치입니다.

0개의 댓글