可能重复:
Get a list of dates between two dates using a function
我需要将结果作为
1/01/2011
2/01/2011
3/01/2011
4/01/2011
5/01/2011
.
.
.
31/01/2011
我不想为此创建表格。只是想得到这个结果。
答案 0 :(得分:1)
试试这个:
DECLARE @startDate DATETIME;
SET @startDate = CAST(DATEPART(YYYY,GETDATE()) AS VARCHAR(4)) + CAST(DATEPART(M,GETDATE()) AS VARCHAR(2)) + '01';
;WITH CTE(n) AS
(SELECT 0 UNION ALL SELECT n+1 FROM CTE WHERE n < 30)
SELECT DATEADD(dd,n,@startDate)
FROM CTE
WHERE MONTH(DATEADD(dd,n,@startDate)) = MONTH(@startDate);