SqlServer取得一个月的所有有日期
时间: 2024-02-24 17:58:03 浏览: 192
如果您想查询某个月份中所有的日期,可以使用以下SQL查询语句:
```
DECLARE @StartDate DATE, @EndDate DATE
SET @StartDate = '2021-10-01'
SET @EndDate = '2021-10-31'
;WITH dates AS (
SELECT @StartDate AS [Date]
UNION ALL
SELECT DATEADD(day, 1, [Date])
FROM dates
WHERE [Date] < @EndDate
)
SELECT [Date]
FROM dates
OPTION (MAXRECURSION 0)
```
在这个查询中,我们使用了一个递归的CTE(Common Table Expression)来生成某个月份中的所有日期。首先,我们需要设置开始日期和结束日期,这里我设置的是2021年10月的第一天和最后一天。然后,我们使用一个CTE来生成日期序列,从开始日期开始,每次加一天,直到结束日期。最后,我们从这个CTE中选择所有的日期。请注意,我们在查询的最后加上了`OPTION (MAXRECURSION 0)`,这是为了避免递归的默认最大次数(100)的限制。
阅读全文