2017-10-25 1 views
1

나는 StartDate 열과 EndDate 열이있는 테이블이 있습니다. 위의 테이블 열의 날짜 범위에서 매 시간마다 새 테이블에 행을 삽입해야합니다. 00 : I 가지고 테이블이
STARTDATE 종료 날짜
2017년 10월 25일 19 모양 00.000 2017년 11월 30일 23 : 59 : 59.997
2017년 10월 26일 13 : 00 : 00.000 2017-12- (1) 23 : 59 :이
날짜 시간
2017년 10월 25일 19
2017년 10월 25일 20
2017년 10월 25일 21
2017 같아야 필요 59.997
날짜 범위에 매 시간마다 행 삽입

새 테이블 -10-25 22
2017-10-25 23

2017년 10월 26일 0 2017년 10월 26일 1
2017년 10월 26일 2 ::::::::::
: ::::::::::
:
2017-11-30 22
2017-11-30 23

너무 길어서 도와주세요!

답변

1

CROSS APPLY과 함께 임시 집계 테이블을 사용하여 수행 할 수 있습니다.

Select Date = cast(D as date) 
     ,Hour = datepart(HOUR,D) 
From YourTable A 
Cross Apply (
       Select Top (DateDiff(HOUR,A.StartDate,A.EndDate)+1) D=DateAdd(HOUR,-1+Row_Number() Over (Order By (Select Null)),A.StartDate) 
       From master..spt_values n1,master..spt_values n2 
      ) B 

반환

Date  Hour 
2017-10-25 19 
2017-10-25 20 
2017-10-25 21 
2017-10-25 22 
2017-10-25 23 
2017-10-26 0 
2017-10-26 1 
2017-10-26 2 
2017-10-26 3 
... 
+0

@MahithaAdmala 해피은 도움 –

관련 문제