With Cte_nAS( Select 1 a Union ALL Select 1 Union ALL Select 1 Union ALL Select 1 Union ALL Select 1 UNION ALL Select 1 a Union ALL Select 1 Union ALL Select 1 Union ALL Select 1 Union ALL Select 1 ),Cte_n1AS( Select n1.a a from CTE_n n, Cte_n n1,Cte_n n2),Cte_TallyAS( Select Row_Number() OVER (ORDER BY a) a from Cte_n1)Select DateAdd(d,a-1,'01-Jan-1900')From Cte_Tally
DECLARE @StartDate DATETIME, --Inclusive @EndDate DATETIME, --Exclusive @Days INT; SELECT @StartDate = '2011', --Inclusive @EndDate = '2015', --Exclusive @Days = DATEDIFF(dd,@StartDate,@EndDate); SELECT TOP (@Days) TheDate = DATEADD(dd,ROW_NUMBER() OVER (ORDER BY (SELECT NULL))-1,@StartDate) FROM sys.all_columns ac1 CROSS JOIN sys.all_columns ac2