如何使用 Postgres 在 Grafana 中将日期时间列用作时间序列

ak9*_*k97 2 postgresql dashboard grafana grafana-variable

大家好,我在 Postgres 中有一张表,基本上存储了门时间条目。例如,每次您扫描卡开门时,我们都会存储日期时间和您的 ID 表格式

创建表doorentry(日期CHARACTER VARYING(50),id VARCHAR(255))

数据集看起来像这样

[{“id”:“aadams1”,“日期”:“09-10-2022-14:55:30”},{“id”:“jjames2”,“日期”:“09-10-2022-14 :55:31"}]

我想按每小时的时间戳对数据集进行分组。我已经实现了这一目标

SELECT SUBSTRING(date,0,16) AS byhour, COUNT(id)
FROM doorentry GROUP BY byhour ORDER BY byhour; 
Run Code Online (Sandbox Code Playgroud)

看起来像这样 在此处输入图像描述

希望能够将此数据显示为时间序列图/新查询的任何帮助,以便能够使用 Grafana 下拉列表显示最后一天或一小时的数据,如下所示: 在此处输入图像描述

Jan*_*raj 8

使用:

SELECT
  $__timeGroupAlias(<TIMESTAMPZ column>, '1h'),
  count(id) AS "count"
FROM doorentry
WHERE
  $__timeFilter(<TIMESTAMPZ column>)
GROUP BY 1
ORDER BY 1
Run Code Online (Sandbox Code Playgroud)

但是您没有 TIMESTAMPZ 类型date,而是 VARCHAR。我建议使用TIMESTAMPZfordate列。使用VARCHAR,您必须首先使用SQL 将varchar 转换为时间戳,例如TO_TIMESTAMP(date, 'MM-DD-YYYY HH:MI:SS')。

请参阅文档了解可用的宏:https://grafana.com/docs/grafana/latest/datasources/postgres/#macros这些宏在底层生成更复杂的 SQL。