开发者

How to set in one date range using sql?

my dates

Dates
2011-03-01 00:00:00.000
2011-03-03 00:00:00.000
2011-03-07 00:00:00.000
2011-03-08 00:00:00.000
2011-03-13 00:00:00.000
2011-03-14 00:00:00.000
2011-03-15 00:00:00.000

How to convert this dates in to one date range like below

i开发者_运维问答 need output like this'

Date_from                 Date_to
2011-03-01 00:00:00.000   2011-03-01 00:00:00.000
2011-03-03 00:00:00.000   2011-03-03 00:00:00.000
2011-03-07 00:00:00.000   2011-03-08 00:00:00.000 
2011-03-13 00:00:00.000   2011-03-15 00:00:00.000


SQL Server 2005+

;WITH cte
     AS (SELECT *,
                DATEDIFF(DAY, 0, Dt) - 
                        DENSE_RANK() OVER (ORDER BY DATEDIFF(DAY,0,Dt)  ) AS Grp
         FROM   Dates)
SELECT MIN(Dt) AS Date_from,
       MAX(Dt) AS Date_to
FROM   cte
GROUP  BY Grp  
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜