연도별 특정기간의 일자를 생성하려고 합니다. 0 2 110

by 정규직 [SQL Query] [2017.11.10 17:40:59]


년도와 기간을 입력받아 일자를 아래와 같이 생성하려고 합니다.

ex) 연도 : 2017, 2013, 2012
    기간 : 3월 1일 ~ 3월 5일

2017-03-01
2017-03-02
2017-03-03
2017-03-04
2017-03-05
2013-03-01
2013-03-02
2013-03-03
2013-03-04
2013-03-05
2012-03-01
2012-03-02
2012-03-03
2012-03-04
2012-03-05

조언 부탁드립니다.

by jkson [2017.11.10 18:13:01]
with t1 as
(
   select '2017,2013,2012' year from dual
)
,
t2 as
(
   select '03-01' fdt, '03-05' tdt from dual
)
select to_date(fromdt,'yyyy-mm-dd') + lv - 1 dt
  from
  (
     select year||'-'||fdt fromdt, year||'-'||tdt todt
       from
       (
          select regexp_substr(year,'[^,]+',1,lv) year
            from t1
               ,(select level lv from dual connect by level <= 10)
           where regexp_count(year,',') >= lv - 1
       )  a
     , t2 b
  ) c
 ,(select level lv from dual connect by level <= 365) d
 where to_date(fromdt,'yyyy-mm-dd') + lv - 1 <= to_date(todt,'yyyy-mm-dd')

 


by 정규직 [2017.11.10 18:23:40]

감사합니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입