试试这个。使用
Recursive CTE。
DECLARE @minDateTime AS DATETIME;DECLARE @maxDateTime AS DATETIME;SET @minDateTime = '2014-01-13 02:00:00';SET @maxDateTime = '2014-12-31 14:00:00';;WITH Dates_CTE AS (SELECt @minDateTime AS Dates UNIOn ALL SELECT Dateadd(hh, 1, Dates) FROM Dates_CTE WHERe Dates < @maxDateTime)SELECt *FROM Dates_CTEOPTION (MAXRECURSION 0)
在上面的查询
Dates_CTE中,a
Common expression Table的基本记录
CTE由之前的第一个sql查询派生
UNIOnALL。查询结果为您提供
Minimum date。
UNIOn ALL重复执行第二个查询以获取结果。此过程
recursive将继续进行,直到Dates少于
@maxDateTime。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)