CREATE FUNCTION [dbo].ufnDATEEXTRACT ( @StartDate DATETIME , @EndDate DATETIME ) RETURNS @DateTable TABLE ( [date] DATETIME ) AS BEGIN SELECT @StartDate = DATEADD(dd, 0, DATEDIFF(dd, 0, @StartDate)) ; SELECT @EndDate = DATEADD(dd, 0, DATEDIFF(dd, 0, @EndDate)) ; WITH CTE_DatesTable AS ( SELECT @StartDate AS [date] UNION ALL SELECT DATEADD(dd, 1, [date]) FROM CTE_DatesTable WHERE DATEADD(dd, 1, [date]) <= @EndDate ) INSERT INTO @DateTable ( [date] ) SELECT [date] FROM CTE_DatesTable OPTION ( MAXRECURSION 0 ) RETURN END
SELECT * FROM dbo.ufnDATEEXTRACT(GETDATE(), DATEADD(MONTH, 1, GETDATE()))