티스토리 뷰

특정년도의 연말 마지막 영업일(평일)의 직전 영업일을 가져오기 위해 사용.

예) 2022년 12월 30일을 선택하여 쿼리에 파라미터로 보낸 경우에는 직전 영업일인 2022년 12월 29일이 조회되어 나오도록 함 

 

업무와 관련된 내용으로 특별한 경우가 아니면 사용하지 않을 것으로 판단되지만... 

주가(주식) 정보는 마지막 영업일의 정보는 조회되지 않으므로 

아래와 같이 직전 영업일 날짜를 조회하여 해당 날짜의 주가 정보를 가져오기 위해서 사용하였음.

 

-- 1: 일요일
-- 7: 토요일
SELECT CASE WHEN DAY_S = '2022-12-30' THEN (
				CASE WHEN DAYOFWEEK(DATE_ADD(DAY_S, interval -1 day)) = 1 THEN DATE_ADD(DAY_S, interval -2 day) -- 하루전이 일요일이면		
				     ELSE DATE_ADD(DAY_S, interval -1 day)			
				END
			)
            ELSE '2022-12-30'
            END AS DATE_COM
  FROM (
		SELECT MONTH('2022-12-30'), LAST_DAY('2022-12-30'), DAYOFWEEK(LAST_DAY('2022-12-30'))
	     , CASE WHEN DAYOFWEEK(LAST_DAY('2022-12-30')) = 7 THEN DATE_ADD(LAST_DAY('2022-12-30'), interval -1 day)
	            WHEN DAYOFWEEK(LAST_DAY('2022-12-30')) = 1 THEN DATE_ADD(LAST_DAY('2022-12-30'), interval -2 day)
	            ELSE LAST_DAY('2022-12-30') END AS DAY_S  
  ) A