본문 바로가기
컴퓨터관련

ORACLE - 시작일자와 종료일자 사이의 날짜 가져오기

by 기록이답이다 2016. 1. 20.
반응형

oracle의 add_months 함수와 connect by 쿼리를 이용하여 처리.

3년치 데이터

select to_char(yy, 'yyyy') yy, to_char(yy, 'yyyymm') yymm
from (
    select add_months(to_date('20081231', 'YYYYMMDD'), (3*level)) yy
    from dual
    connect by add_months(to_date('20081231', 'YYYYMMDD'), (3*level)) < sysdate
    )

시작일자와 종료일자를 기준으로 날짜 가져오기

		select 
			to_char(to_date(sd, 'yyyymmdd') + (level -1), 'yyyymmdd') dt,
			to_char(to_date(sd, 'yyyymmdd') + (level -1), 'd') daystr /** 요일 (1 : sunday ... 7 : saturday) **/
		    from (
		        select
		              '20160101' sd
		            , '20160131' ed
		        from dual
		        )
		    connect by to_date(sd, 'yyyymmdd') + (level -1) <= to_date(ed, 'yyyymmdd')
반응형