Dễ dàng trên SQL 2005+; dễ dàng hơn nếu bạn có một con số hoặc bảng kiểm đếm. Tôi đã làm giả nó bên dưới:
DECLARE @StartDate DATE = '20110901'
, @EndDate DATE = '20111001'
SELECT DATEADD(DAY, nbr - 1, @StartDate)
FROM ( SELECT ROW_NUMBER() OVER ( ORDER BY c.object_id ) AS Nbr
FROM sys.columns c
) nbrs
WHERE nbr - 1 <= DATEDIFF(DAY, @StartDate, @EndDate)
Nếu bạn có bảng kiểm đếm, hãy thay thế truy vấn con bằng bảng. Không đệ quy.