当前位置 : 主页 > 网络推广 > seo >

tsql:如何检索给定日期范围之间每个月的最后日期

来源:互联网 收集:自由互联 发布时间:2021-06-16
我有两个日期,例如08/08/2013和11/11/2013,我需要从8月到11月的每个月的最后一个日期在一个表中,以便我可以遍历表格来单独选择这些日期. 我知道如何选择任何月份的最后日期,但我被一个
我有两个日期,例如08/08/2013和11/11/2013,我需要从8月到11月的每个月的最后一个日期在一个表中,以便我可以遍历表格来单独选择这些日期.

我知道如何选择任何月份的最后日期,但我被一个日期范围所困扰.

亲切的帮助,我们将非常感激.

注意:我使用的是Sql 2008,日期范围可能是1个月,2个月或6个月或一年或者最大值.

您可以使用 CTE获取定义范围内的所有月中的所有最后几天

Declare @Start datetime
Declare @End datetime

Select @Start = '20130808'
Select @End = '20131111'
;With CTE as
(
Select @Start  as Date,Case When DatePart(mm,@Start)<>DatePart(mm,@Start+1) then 1 else 0 end as [Last]
UNION ALL
Select Date+1,Case When DatePart(mm,Date+1)<>DatePart(mm,Date+2) then 1 else 0 end from CTE
Where Date<@End
)

Select * from CTE
where [Last]=1   OPTION ( MAXRECURSION 0 )
网友评论