如何在sql中选择过去5年中每月的第1个月?

时间:2015-12-15 16:06:11

标签: sql sql-server

我正在尝试获取过去5年中每月第1个的列表。我怎样才能做到这一点 ??我有一个选择声明:

select convert(varchar(10), dateadd(mm,Datediff(mm,0,getdate()),0),111) as StartDate

但我不确定如何获得每个月的清单。

2 个答案:

答案 0 :(得分:1)

with dates
as (
    select dateadd(month, datediff(month, 0, getdate()), 0) as date
    union all
    select dateadd(month, - 1, date)
    from dates
    )
select top 60 *
from dates

答案 1 :(得分:0)

     with cte as ( 
select DATEFROMPARTS ( datepart(yyyy,getdate()), datepart(mm,getdate()), 1 ) as startdate 
union all 
select dateadd(month,-1,startdate) from dates 
where datediff(year,startdate,getdate()) <> 5 ) 
select CONVERT ( varchar(12), startdate , 107 ) from cte;