DECLARE @EndDate datetime
DECLARE @StartDate datetime
SET @StartDate = '2010-1-1'
SET @EndDate = '2010-12-31'
;WITH Dates(DATEPARAM) AS
(
SELECT @StartDate AS datetime
UNION ALL
SELECT DATEADD(DAY, 1, DATEPARAM)
FROM Dates
WHERE DATEPARAM < @EndDate
)
SELECT *
FROM Dates
order by 1
OPTION (MAXRECURSION 366)