我有一个只有两个字段的表(在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/