날짜 기간 내에 시간대를 row로 표현하고 싶은데요.. 0 2 1,008

by 문선린 [2014.03.26 17:35:50]


오늘~내일 까지라고 조건을 줬을때

2014-03-26 00:00:00
2014-03-26 01:00:00
2014-03-26 02:00:00
2014-03-26 03:00:00
...
2014-03-27 20:00:00
2014-03-27 21:00:00
2014-03-27 22:00:00
2014-03-27 23:00:00

이렇게 데이터가 나오게 하고 싶은데요..
쿼리가 생각이 안나네요..

도움 좀 받을수 있을까요?
by 문선린 [2014.03.26 17:39:17]
하다보니

select to_date('20140201', 'yyyy-mm-dd')+((level-1)*(to_date('20140202 01:00:00','yyyymmdd hh24:mi:ss')-to_date('20140202 00:00:00','yyyymmdd hh24:mi:ss')))
  from dual
connect by level <= (to_date('20140202', 'yyyy-mm-dd')-to_date('20140201', 'yyyy-mm-dd')+1)*24

이렇게 하니 되네요..
더 효율적인 방법은 어떤게 있을까요?

by 마농 [2014.03.26 17:56:50]
SELECT sdt + (LEVEL - 1) / 24 dt
  FROM (SELECT TO_DATE('20140326', 'yyyymmdd') sdt, TO_DATE('20140327', 'yyyymmdd') edt FROM dual)
 CONNECT BY LEVEL <= (edt - sdt + 1) * 24
;
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입