sql 语句怎么取一段时间每个月最后一天

SQL SERVER 数据库指定一段时间 (比如 2019-3-1到2021-12-31)只取每个月的最后一天sql语句怎么写??

这个要看一下sqlserver的版本,EOMONTH只能在 SQL Server 2012 (11.x)及以上版本执行,否则就要使用多个函数组合来实现取月底最后一天的效果了。
另外,你这个好像是想"无中生有",即不是根据目前表里已经存在的数据,而是想直接生成只有一个列的虚拟表,此时一般需要使用到递归

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

img

SELECT EOMONTH (GETDATE())

SQLServer 2012以后有效