上一季度的最后一天减去1或2年

时间:2018-11-05 04:15:18

标签: sql sql-server

我需要上一个季度的最后一天,然后减去从那以后的多少年。

例如,我在2019-01-10中运行报告,那么上一季度的最后一天将是2018-12-31。然后,我要减去2年。

我目前有这个:

year(CONVERT(date,DATEADD(dd, -1, DATEADD(qq, DATEDIFF(qq, 0, getdate()), 0))))-2

但是需要输出2018-12-31而不是2016

1 个答案:

答案 0 :(得分:2)

您可以在下面尝试

DEMO

如果您要从上一季度的最后一天开始减去负2年,则-

select cast(dateadd(year,-2,DATEADD(s, -1, DATEADD(qq, DATEDIFF(qq, 0,'2019-01-10'), 
0))) as date) As PreviousQuarterLastdayTime

输出:

PreviousQuarterLastdayTime
31/12/2016 00:00:00

如果只想要上一个季度的最后一天,则-

select cast(DATEADD(s, -1, DATEADD(qq, DATEDIFF(qq, 0,'2019-01-10'), 
    0)) as date) As PreviousQuarterLastdayTime

输出:

PreviousQuarterLastdayTime
31/12/2018 00:00:00