以毫秒为单位的 Timestamp 搜索时间 influxdb

Search times with Timestamp in milliseconds influxdb

在 influx 中,我将时间替换为 gps 模块给出的时间。它以 Unix 纪元时间保存日期,如下所示 1432600783000.

当我尝试在 influxdb 中执行这样的查询时:

select * from items where id = '11111111111' and time > 1432080000000s and time < 1432177199000s group by (1d)

日期 1432080000000: GMT:2015 年 5 月 20 日星期三 00:00:00 GMT 您所在的时区:19/5/2015 21:00:00 GMT-3:00

日期 1432177199000: GMT:2015 年 5 月 21 日星期四 02:59:59 GMT 您所在的时区:2015 年 5 月 20 日 23:59:59 GMT-3:00

它没有 returns 任何东西,过滤日期的正确方法是什么,例如在两个日期之间添加时间点。

谢谢。

您在查询中将秒指定为精度,但提供的是毫秒时间戳。 1432080000000s表示1432080000000秒,也就是47350年的10月22日。

$ date -r 1432080000000 Thu Oct 22 16:00:00 PST 47350

此外,如果 SELECT 语句中没有聚合函数,则无法执行 GROUP BY。要求对所有点进行每日汇总,然后又不提供将结果汇总为每日值的方法,这是没有意义的。删除 GROUP BY 子句以 return 时间范围内的所有点。 (您的 GROUP BY 语法也不正确。正确的语法应该是 GROUP BY time(1d)。)

您的查询应该是:select * from items where id = '11111111111' and time > 1432080000s and time < 1432177199s

我必须在将数据发送到 UTC 时间查询之前进行更改,如下所示:

select * from items where id = '11111111111' and time > '2015-05-20 03:00:00' and time < '2015-05-20 03:00:00' + 1d  group by time(1d)

为此,我使用了这样的 moment js:

moment.utc(date).format('YYYY-MM-DD hh:mm:ss')

然后日期以 2015-05-20 03:00:00 格式发送,反映了我所在的时区。