繁体   English   中英

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

[英]Get last day of a given quarter and Year in SQL

我从视图中获得了 2 个变量年份和季度。 我必须通过这些值来获取该特定季度和年份的最后日期。 有没有办法在 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')))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM