PostgreSQL在选定时间间隔的数据

时间:2019-07-17 06:25:26

标签: postgresql

1

我有一个表,该表在PostgreSQL数据库中包含三列。这三列是时间戳,标记和值。在此表中,将从SCADA服务器生成的日志文件中自动插入数据。我需要该表中的每小时数据。 (20:00:00,21:00:00)

timestamp           tag  value
2019-06-06 06:00:00  x    123
2019-06-06 06:00:00  y    456
2019-06-06 06:01:00  x    123
2019-06-06 06:01:00  y    656
2019-06-06 06:02:00  x    123 
2019-06-06 06:02:00  y    333 
.......
.......
2019-06-06 06:59:00  x   2232
2019-06-06 06:59:00  y   654
2019-06-06 07:00:00  x   5645
2019-06-06 07:00:00  y   54654

我希望以用户定义的时间间隔在开始时间和结束时间之间输入数据。 示例开始时间戳2019-06-06 06:00:00和结束时间戳2019-06-06 09:00:00,然后选择的时间间隔是5分钟,

所需的输出应如下所示:

timestamp               tag value
2019-06-06 06:00:00     x   123
2019-06-06 06:00:00     y   456
2019-06-06 06:05:00     x   5645
2019-06-06 06:05:00     y   54654
2019-06-06 06:10:00     x   5645
2019-06-06 06:10:00     y   54654
...
.....
......
2019-06-09 08:55:00     x   5645
2019-06-09 08:55:00     y   54654
2019-06-09 08:55:00     x   5645
2019-06-09 08:55:00     y   54654

1 个答案:

答案 0 :(得分:0)

如果您将此数据加载到pandas DataFrame(with pandas.read_sql)中,并将索引定义为日期时间序列(with pandas.to_datetime),则可以使用pandas built-in resampling functionseries.resample)完全可以满足您的需求