11,849
社区成员
发帖
与我相关
我的任务
分享
declare @x date
select @x='2000-01-01'
while(dateadd(mm,1,@x)<'2100-01-01')
begin
if datepart(dw,@x)=6 and datediff(d,@x,dateadd(mm,1,@x))=31
print left(cast(@x as varchar(20)),7)
select @x=dateadd(mm,1,@x)
end
结果
/*
2000-12
2002-03
2003-08
2004-10
2005-07
2006-12
2008-08
2009-05
2010-01
2010-10
2011-07
2013-03
2014-08
2015-05
2016-01
2016-07
2017-12
2019-03
2020-05
.
.
.
.
.
2084-12
2086-03
2087-08
2088-10
2089-07
2090-12
2092-08
2093-05
2094-01
2094-10
2095-07
2097-03
2098-08
2099-05
*/