在SQL Server中获取介于两个月之间的月末日期列表,可以使用以下查询语句:
DECLARE @StartDate DATE = '2022-01-01';
DECLARE @EndDate DATE = '2022-03-01';
WITH CTE AS (
SELECT EOMONTH(@StartDate) AS MonthEnd
UNION ALL
SELECT EOMONTH(DATEADD(MONTH, 1, MonthEnd))
FROM CTE
WHERE MonthEnd < EOMONTH(@EndDate)
)
SELECT MonthEnd
FROM CTE
OPTION (MAXRECURSION 0);
以上查询语句中,我们使用了CTE(Common Table Expression)来生成月末日期列表。首先,我们声明了一个起始日期@StartDate
和结束日期@EndDate
。接下来,使用递归CTE生成月末日期列表,直到月末日期超过结束日期为止。
在每个递归步骤中,我们使用EOMONTH
函数获取当前月份的月末日期,然后通过DATEADD
函数加上一个月,以计算下一个月份的月末日期。递归终止的条件是月末日期超过结束日期。最后,从CTE中选择月末日期列表。
这个查询语句可以适用于各类SQL Server版本,并且能够灵活地获取不同范围内的月末日期列表。
对于这个问题,腾讯云提供的相关产品是TencentDB for SQL Server,它是一种托管的SQL Server数据库解决方案,提供了高性能、高可用性和可扩展性的数据库服务。您可以通过腾讯云的官方网站了解更多关于TencentDB for SQL Server的信息和产品介绍。
领取专属 10元无门槛券
手把手带您无忧上云