안녕하세요
아래 송민구님이 질문하셨던걸 고민중인데, 마농님이 알려주신내용으로는
2월에 윤달(?) 때문인지
주차가 2월1일이 1주차
2월 2일이 2주차로 시작되는데
이걸 해결해보려고 윤년 계산해보면서 했는데 음..모르겠어요
아래의 문장은
특정 입력일 기준 , 주차 구해서 그주의 수요일 date를 가져오는 내용인데요
2월은 어떻게 해결해야할까요?
----------------------------------------------------------------------------------------------------------------------------------------------
WITH T AS
(
SELECT TO_DATE(:referenceDate, 'YYYYMMDD') dt
FROM ( SELECT :referenceDate YYYYMMDD FROM dual)
WHERE TO_CHAR(TO_DATE(YYYYMMDD, 'YYYYMMDD'), 'ddd') <= TO_CHAR(TO_DATE(YYYYMMDD, 'YYYYMMDD'), 'ddd')
)
SELECT dt as "입력일"
, CEIL(( dt - TRUNC(TRUNC(dt, 'MM'), 'IW') +1 ) / 7) ||'주차' "입력일의 주차"
, CASE WHEN TO_CHAR(TO_DATE(:referenceDate, 'YYYYMMDD'), 'D') < 4 THEN TRUNC(TO_DATE(:referenceDate, 'YYYYMMDD' + 4, 'IW') +2
ELSE TRUNC(TO_DATE(:referenceDate, 'YYYYMMDD'), 'IW') +2 END "입력일 주의 수요일"
FROM T