根据日期查询不同年份的前X个值

问题描述 投票:0回答:1

我正在尝试获取一个查询,以基于TimeStamp从SQL中获取前84个条目。这表示价值12周的数据(每日值)。

我们通过以下方式得到它:

SELECT TOP (84) TimeStamp, Value
FROM Table
Order by TimeStamp DESC

但是,我试图与前一年保持相同的范围。

因此,过去12周将是2019-12-20-2020-03-06。我需要查询才能给我2018-12-20-2019-03-06。

查询始终基于时间戳记的前86行。

无法对其进行硬编码,因为它依赖于每周一次的Excel更新来填充数据。

我尝试摆弄DATEADD(year,-1,TimeStamp)无济于事。

sql tsql dateadd
1个回答
0
投票

因为目的是获取最后84天的数据,所以我认为通过过滤可以更简单地完成此操作。

您当前的查询,使用过滤器而不是TOP

select timestamp, value
from table
where timestamp 
    between dateadd(day, -84, cast(getdate() as date)) 
    and cast(getdate() as date)
order by timestamp desc

去年:

select timestamp, value
from table
where timestamp 
    between dateadd(year, -1, dateadd(day, -84, cast(getdate() as date))) 
    and dateadd(year, -1, cast(getdate() as date))
order by timestamp desc
© www.soinside.com 2019 - 2024. All rights reserved.