在SQL中获取给定季度和年份的最后一天



我从视图中获得了两个变量年份和季度。我必须传递这些值才能获得特定季度和年份的最后日期。在SQL中有办法做到这一点吗?

例如:

select (QuarterEndDate) where Year = @year and Quarter = @quarter

我将使用datefromparts()eomonth():

select eomonth(datefromparts(@year, 3 * @quarter, 1))

DB Fiddlde上的演示

declare @year int;
declare @quarter int;
set @year = 2020;
set @quarter = 3;
select eomonth(datefromparts(@year, 3 * @quarter, 1)) last_quarter_day
GO
|last_quarter_day||:---------------||2020-09-30|

尝试以下操作,应该会给出季度的最后日期。

第一个选项:qq是您的季度编号。

dateadd(qq, DateDiff(qq, 0, @Date), -1) 

第二种选择:

dateadd(D,-1,dateadd(M, 3*qq+3, CONVERT(date, CONVERT(varchar(5),@year)+'-1-1')))

最新更新