如何在 influxdb 选择查询中格式化时间

Posted

技术标签:

【中文标题】如何在 influxdb 选择查询中格式化时间【英文标题】:How to format time in influxdb select query 【发布时间】:2015-10-16 08:56:37 【问题描述】:

我是 InfluxDB 的新手。我正在管理 ui 中查询数据。我将时间视为时间戳。是否可以看到它被格式化为日期和时间?

【问题讨论】:

你能定义“时间戳”是什么意思吗? InfluxDB 0.9.1 及更高版本中的管理 UI 以如下格式返回时间:2015-07-17T20:32:58.662703915Z,其中2015-07-17 是年月日,20:32:58.662703915 是小时:分钟:秒:纳秒。我将其称为时间戳并按日期和时间格式化。 我有一个类似的问题,在我的情况下,我正在从 influx CLI shell 运行查询,并且时间打印为 Unix 纪元纳秒。我宁愿看到 RFC 3339 格式,就像 HTTP API 默认做的那样。 管理 UI 功能有限,不建议用于生产。 “thierry”的答案是正确的,使用 CLI 可以控制时间戳格式和精度。 【参考方案1】:

虽然thierry 已经回答了这个问题,但这里也是文档的链接:

精度 'rfc3339|h|m|s|ms|u|ns'

指定时间戳的格式/精度:rfc3339 (YYYY-MM-DDTHH:MM:SS.nnnnnnnnnZ), h (小时), m (分钟), s (秒), ms (毫秒), u (微秒) ), ns (纳秒)。精度默认为纳秒。

https://docs.influxdata.com/influxdb/v1.5/tools/shell/#influx-arguments

【讨论】:

【参考方案2】:

从 InfluxDB 1.1 开始,Web 管理界面为 deprecated(默认禁用)。

时间戳的精度可以控制返回小时(h)、分钟(m)、秒(s)、毫秒(ms)、微秒(u)或纳秒(ns)。一个特殊的精度选项是RFC3339,它以 RFC3339 格式返回具有纳秒精度的时间戳。 CLI 和 HTTP API 指定所需时间精度的机制不同。

To set the precision in CLI,您可以在命令行中写入precision <RFC3339|h|m|s|ms|us|ns>,具体取决于您想要的精度。 CLI 的默认精度值为纳秒。

To set the precision in HTTP API,您将epoch=<h|m|s|ms|us|ns> 作为查询参数传递。精度的默认值为 RFC3339。

【讨论】:

【参考方案3】:

要将 influxdb 时间戳转换为普通时间戳,您可以在控制台上输入:

涌入-精度 rfc3339

现在尝试使用您的查询,它应该可以工作。

更多详情请点击链接: https://www.influxdata.com/blog/tldr-influxdb-tech-tips-august-4-2016/

【讨论】:

我将它添加为别名。我认为它应该是流入 cli 的默认选项。 否,默认情况下你会得到influxdb时间戳,类似于1465839830100400200,使用RFC3339格式后你会得到2016-06-13T17:43:50.1004002Z【参考方案4】:

您可以通过在 CLI 中输入以下命令来选择RFC 3339 格式:

precision rfc3339

【讨论】:

以上是关于如何在 influxdb 选择查询中格式化时间的主要内容,如果未能解决你的问题,请参考以下文章

influxdb filed最大存多少数据

在 Grafana Graph 中看不到 InfluxDB 的时间和数据

如何在查询语句 Mysql 中格式化日期?

influxdb 中的查询和高级操作

如何在 OpenTSDB 和 InfluxDB 或其他 TSDS 之间做出选择? [关闭]

grafana+influxDB+telegraf的基本操作