我有一个只有两个字段的表(在SQLite3中,但我可以使用PostgreSQL或SQLServer),它们具有日期时间和int值(房间的温度),如下所示:

+-----------------------------------+
| Table: Temperature                |
+---------------------+-------------+
| Date                | Temperature |
+---------------------+-------------+
| 2017-03-03 15:10:00 |          25 |
| 2017-03-03 15:11:00 |          25 |
| 2017-03-03 15:12:00 |          25 |
| 2017-03-03 15:13:00 |          25 |
| 2017-03-03 15:14:00 |          26 |
| 2017-03-03 15:15:00 |          26 |
| 2017-03-03 15:16:00 |          26 |
| 2017-03-03 15:17:00 |          26 |
| 2017-03-03 15:18:00 |          26 |
| 2017-03-03 15:19:00 |          27 |
| 2017-03-03 15:20:00 |          27 |
+---------------------+-------------+


像示例中一样,我每分钟都有一个温度。

它用于监视其他系统的温度,但是我也想在网页上使用python(烧瓶)显示温度,但是在网页中每分钟显示温度并不重要,但每10分钟显示一次温度并不重要。或每小时都更好。

如何选择每10分钟(或其他时间间隔)仅显示温度?所以我的结果必须是:

+-----------------------------------+
| Table: Temperature                |
+---------------------+-------------+
| Date                | Temperature |
+---------------------+-------------+
| 2017-03-03 15:10:00 |          25 |
| 2017-03-03 15:20:00 |          27 |
+---------------------+-------------+

最佳答案

对于sql-server,您可以执行以下操作:

select *
from temperature
where datepart(minute,[date])%10 = 0


对于postgres,您可以使用如下所示的内容:

select *
from temperature
where cast(date_part('minute',date) as int) % 10 = 0;


都返回:

+---------------------+-------------+
|        date         | temperature |
+---------------------+-------------+
| 2017-03-03 15:10:00 |          25 |
| 2017-03-03 15:20:00 |          27 |
+---------------------+-------------+


sql server rextester演示:http://rextester.com/DXMCK81428

postgres rextester演示:http://rextester.com/NAXX57760

关于sql - SQL所有行之间的最小间隔,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42585864/

10-12 13:55