sql距去年最近60天

时间:2019-06-14 13:09:58

标签: sql firebird

我正在尝试查询以获取去年的最后60天。

我有当前期间

DATE >= DATEADD(DAY, -60, current_timestamp) AND PEDDTEMIS < 'TODAY'

我想要得到的东西

DATE >= DATEADD(DAY, -60, DATEDIFF(YEAR,current_timestamp,-1) AND DATE < DATEDIFF(YEAR,'TODAY',-1)

我想要的日期:

当前:06/14/2019-04/15/2019 去年:06/14/2018-04/15/2018

感谢任何帮助

4 个答案:

答案 0 :(得分:1)

认为,您正在尝试获取“一年前的今天60天”(尽管您的问题的标题表明有所不同)。

一年前的今天应该是:DATEADD(-1 YEAR TO CURRENT_DATE)

之前六十天应为:DATEADD(-60 DAY TO DATEADD(-1 YEAR TO CURRENT_DATE))

因此,您正在寻找这两个日期值之间的记录。

答案 1 :(得分:0)

好吧,这是我想到的:

as Task

答案 2 :(得分:0)

您可以尝试

SELECT DATEADD(DAY,-60, DATEADD(DAY, -1, DATEADD(YEAR, DATEDIFF(YEAR, 0, GETDATE()), 0)))

答案 3 :(得分:0)

好像您在使用Oracle。 DATEDIFF返回两个日期之间的差,以YEARS / DAYS等表示。您需要的只是DATEADD,以减去一年并减去60天:

DATE >= DATEADD(DAY, -60, DATEADD(YEAR,current_timestamp,-1) AND DATE < DATEADD(YEAR,current_timestamp,-1)