我从视图中获得了两个变量年份和季度。我必须传递这些值才能获得特定季度和年份的最后日期。在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')))