sql server 2008R2怎么取一段时间每个月的最后一天

就是一个表中有很多数据这些数据是生产数据一口井每天一条所以有很多数据,有日期,我想取一段时间(比如2021-1-1到2021-12-31)的每个的月的最后一天怎么取?我的数据库是sql Server 2008R2,我现在实现了指定月的最后一天,我是这样写的:SELECT dateadd(month, datediff(month, -1, '2019-01-01'), -1)

其实上个题就已经给你答案了,
SQL SERVER 2005之后新增了CTE功能,可以利用CTE实现递归查询

with t as (
select cast ('2021-01-01' as date) a
union all
select dateadd(month,1,a) from t where dateadd(month,1,a)<='2021-12-31'
)
select  dateadd(month, datediff(month, -1, a), -1) from t

img

就是你这样写的,select dateadd(month, datediff(month, -1, '2022-3-24'), -1)

谢谢!