我有一个查询,它返回一天内来自设备的所有消息(简化):
SELECT date, value
FROM Messages
WHERE date between '04/01/2018 00:00:00' AND '04/01/2018 23:59:59'
ORDER BY date asc
Run Code Online (Sandbox Code Playgroud)
问题是它返回太多行。例如,每分钟至少1 行(一天 1440 行),我必须将其打印在图表中。
我怎样才能在每刻钟返回第一行,这样我每天每小时都会得到 4 行?
预期结果:
date value
2018-01-04 05:00:00.000 || 5,52
2018-01-04 05:15:00.000 || 5,48
2018-01-04 05:30:00.000 || 5,35
2018-01-04 05:45:00.000 || 5,42
Run Code Online (Sandbox Code Playgroud)
您可以通过模数 (%) 来完成,如下所示:
SELECT date, value
FROM Messages
WHERE date between '04/01/2018 00:00:00' AND '04/01/2018 23:59:59' and (datepart(minute,date) % 15) = 0
ORDER BY date asc;
Run Code Online (Sandbox Code Playgroud)
此查询返回一个数据,其中包含分钟完全除以 15(季度)的日期行。我想这可以解决你的问题。
注意:我没有使用,
Seconds因为您的数据按照您所使用的语言每分钟添加一次。