我有一个数据表,每隔一分钟就有一个条目,它是一个庞大的数据集。所以我需要每2分钟检索一次数据10 minutes dataset from last valid record
。所有这些数据都用在图形图中,因此试图限制图表中显示的记录数。
例如,样本看起来像这样:
DateTime
2016-01-01 08:22:00
2016-01-01 08:21:00
2016-01-01 08:20:00
2016-01-01 08:19:00
2016-01-01 08:18:00
2016-01-01 08:17:00
2016-01-01 08:16:00
2016-01-01 08:15:00
2016-01-01 08:14:00
2016-01-01 08:13:00
2016-01-01 08:12:00
2016-01-01 08:11:00
2016-01-01 08:10:00
预期记录结果:
2016-01-01 08:21:00
2016-01-01 08:19:00
2016-01-01 08:17:00
2016-01-01 08:15:00
2016-01-01 08:13:00
如何在SQL查询中执行此操作?
答案 0 :(得分:1)
要检索值,您可以使用以下内容:
SELECT
*
FROM
YourTable AS T
WHERE
T.DateTimeColumn >= DATEADD(MINUTE, -10, GETDATE())
对于您的定期任务,您可以创建一个每2分钟运行上一个查询的SQL Server代理作业。
答案 1 :(得分:1)
如果您使用的是SQL Server:
在SQL中编写循环并运行它。你可以改变@end_time计算,将时间限制从10增加到更大。
DECLARE @interval int = 2,
@start_time datetime ,
@end_time datetime
set @start_time = GETDATE();
set @end_time = DATEADD(M, 10, @start_time)
while (@start_time < @end_time)
BEGIN
select *
from [TABLENAME ]
where [col] between @start_time and DATEADD(M, @interval, @start_time)
set @start_time = DATEADD(M, @interval, @start_time) END