매월말일에 가까운 금요일 1 201

by 구사일생 [SQL Query] 날짜계산 [2025.05.21 20:59:31]


매월 말일에 가까운 금요일을 구하고 싶은 데요

2025년1월은 1월31일

2025년2월은 2월28일

2025년3월은 3월28일

2025년4월은 5월2일

2025년5월은 5월30일

2025년6월은 6월27일

2025년7월은 8월1일

입니다.

4월과 7월이 문제네요

한번 같이 고민들 부탁드립니다.

by 뉴비디비 [2025.05.21 23:35:30]
-- 시작요일 일요일('1') 기준 
-- 이런 데이터는 따로 테이블로 만들어 두는게 편하지 않을까요? 
SELECT 
	to_char(LAST_DAY(to_date('2025'||LPAD(LEVEL, 2, '0') ,'yyyymm')),'YYYY-MM-DD') AS "매월마지막", 
	CASE WHEN TO_CHAR(LAST_DAY(to_date('2025'||LPAD(LEVEL, 2, '0') ,'yyyymm')), 'd') IN ('3','4','5','6','7') THEN 
				to_char(LAST_DAY(to_date('2025'||LPAD(LEVEL, 2, '0') ,'yyyymm'))
							+(6-TO_CHAR(LAST_DAY(to_date('2025'||LPAD(LEVEL, 2, '0') ,'yyyymm')), 'd')),'YYYY-MM-DD')
		WHEN TO_CHAR(LAST_DAY(to_date('2025'||LPAD(LEVEL, 2, '0') ,'yyyymm')), 'd') IN ('1','2') THEN 
				to_char(LAST_DAY(to_date('2025'||LPAD(LEVEL, 2, '0') ,'yyyymm'))
							-TO_CHAR(LAST_DAY(to_date('2025'||LPAD(LEVEL, 2, '0') ,'yyyymm')), 'd')-1,'YYYY-MM-DD')
		END AS "가까운금요일"
FROM dual CONNECT BY LEVEL <= 12 ; 

by 마농 [2025.05.22 09:21:29]
SELECT TO_CHAR(dt, 'yyyymm') ym
     , TO_CHAR(NEXT_DAY(dt - 4, 6), 'yyyymmdd') fri
  FROM (SELECT ADD_MONTHS(TO_DATE('202501', 'yyyymm'), LEVEL) - 1 dt
          FROM dual
         CONNECT BY LEVEL <= 12
        )
;

 


by 구사일생 [2025.05.22 20:50:49]

역시 한번에 하는 방법이 있었군요

당월 말일 과 당월 마지막 금요일과의 일수 

익월 첫번째 금요일과 당월 말일간의 일수를 비교 하려 했는데

훨씬 간단한 방법이네요 감사합니다. 내일 바로 적용을 해야 겠네요

 

모두모두 감사합니다. 갑자기 더워진 날씨에 건강 유의 들  하세요