Get all dates in date range in SQL Server

前端 未结 3 1824
清酒与你
清酒与你 2020-12-03 13:16

I got this example from one StackOverflow question that was asked but I couldn\'t get it work according to my need.

WITH DateTable
AS
(
    SELECT CAST(\'201         


        
3条回答
  •  伪装坚强ぢ
    2020-12-03 13:42

    What about this?

    --DROP TABLE #Test
    CREATE TABLE #Test(ID int, FromDate datetime, ToDate datetime)
    INSERT INTO  #Test VALUES (1, '2011-11-10', '2011-11-12')
    INSERT INTO  #Test VALUES (2, '2011-12-12', '2011-12-14')
    
    ;
    WITH DateTable
    AS
    (
        SELECT  ID, FromDate, ToDate, 0 AS Seed FROM #Test
        UNION   ALL
        SELECT  ID, DATEADD(dd, 1, FromDate), ToDate, Seed + 1
        FROM    DateTable
        WHERE   DATEADD(dd, 1, FromDate) <= ToDate
    )
    SELECT  --*
            ROW_NUMBER() OVER (ORDER BY ID, Seed) SN, FromDate AS Dates
    FROM    DateTable
    

提交回复
热议问题