데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
아래 제가올린 질문에 대한 해결책을 찾다가 예전에 문의했던걸 응용을 하면 해결책을 찾을 수 있을꺼 같아서 다시 문의드립니다.
http://www.sqler.com/611303
구간을 시간 단의로 쪼개기를 하려면 어떻게 할까요?
상기 질문은 제가 구간을 월단위로 쪼개서 결과값을 받기위해 질문했던 것인데요.
이를 응용해서 시간단위로 쪼개서 다른 결과값을 얻고자 합니다.
1. 2013-12-03 09:00:00 2013-12-03 12:00:00
2. 2013-12-03 08:00:00 2013-12-03 13:00:00
----'
결과값이
1 2013-12-03 09:00:00
1 2013-12-03 10:00:00
1 2013-12-03 11:00:00
2 2013-12-03 08:00:00
2 2013-12-03 09:00:00
......
2 2013-12-03 12:00:00
이렇게 나오게 하고 싶습니다.
가능할까요?
Comment 1
-
건우아빠
2015.01.22 15:52
with res as (select '1' gb, '2013-12-03 09:00:00' f_dt , '2013-12-03 12:00:00' t_dt union allselect '2' , '2013-12-03 08:00:00' ,'2013-12-03 13:00:00' )select * , DATEdiff(hh, f_dt, t_dt) , DATEADD(HH,b.number,f_dt ) [new_time]from res across apply( select numberfrom master.dbo.spt_values where type ='P' and number < DATEdiff(hh, a.f_dt, a.t_dt)) b