2017-10-25 7 views
1

私はStartDate列とEndDate列を持つテーブルを持っています。私は新しいテーブルに上記のテーブルの列の日付範囲の各時間の行を挿入する必要があります。 00::私が持っている の表は、この
開始日終了日
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:私は必要59.997
日付範囲に1時間ごとに行を挿入します。

新しいテーブルがこの
日付時間
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年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ハッピーそれが助けました –

関連する問題