본문 바로가기

Server Oriented/DB-Oracle

윤년 추출

여기선, last_day() 와 add_months() 를 이용한 방법을 확인해 본다.



last_day() 는 해당 월의 마지막 일자를 세팅해 주므로, 2월에 적용하면 됨.

select ymd

  from (select to_char(last_day(to_date((to_char(sysdate,'yyyy')-rownum+1)||'02',  -- -rownum 이면 이전년도, +rownum 이면 이후년도

                  'yyyymm')),'yyyymmdd') ymd

          from w2_article 

         where rownum < 1000

       )

 where substr(ymd,5,4)='0229' -- 윤년

;





1/31 일자에 add_months 로 1개월을 추가하면 2월 말일을 세팅해주는 것을 활용.

select ymd

  from (select to_char(add_months(to_date((to_char(sysdate,'yyyy')-rownum+1)||'0131',

                  'yyyymmdd'),1),'yyyymmdd') ymd

          from 인덱스걸린테이블 

         where rownum < 1000

       )

 where substr(ymd,5,4)='0229' -- 윤년

;