我需要创建一个从2013年4月到现在返回年份和月份的查询,如下所示:
2013 | 4
2013 | 5
2013 | 6
2013 | 7
2013 | 8
.... | .
.... | .
.... | .
2015 | 1
2015 | 2
2015 | 3
2015 | 4
它必须与SQLServer 2000一起使用,我在SE上找到的所有解决方案都只是SQLServer2005 +兼容。
有没有办法用这个(非常)旧的SGBD做到这一点?
如果没有解决方案,我会考虑创建一个数字表,但我发现它并不优雅......
答案 0 :(得分:0)
declare @Startdate AS DateTime = Dateadd( year,-2,Getdate()) ,
@EndDate DateTime = Getdate()
Declare @YearTable as Table ( CalYear int , calmonth int)
While @Startdate <= @EndDate
BEGIN
Insert Into @YearTable values(YEAR(@Startdate),MONTH(@Startdate))
set @Startdate = DateADD(Month,1,@Startdate)
END
select * from @YearTable