使用Timestamp搜索时间(以毫秒为单位)Influxdb

时间:2015-05-26 02:11:18

标签: javascript node.js influxdb

在涌入中,我将时间换成gps模块给出的时间。它在Unix纪元时间保存日期,如1432600783000。

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

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

日期1432080000000: 格林尼治标准时间:2015年5月20日星期三00:00:00 GMT 您所在的时区:19/5/2015 21:00:00 GMT-3:00

日期1432177199000: 格林尼治标准时间:2015年5月21日星期四02:59:59 GMT 您的时区:20/5/2015 23:59:59 GMT-3:00

它不会返回任何内容,过滤日期的正确方法是什么,例如在两个日期之间带点。

感谢。

2 个答案:

答案 0 :(得分:1)

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

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

此外,如果没有SELECT语句中的聚合函数,则无法执行GROUP BY。要求每天对所有点进行总结是没有意义的,然后无法将结果汇总到每日值中。删除GROUP BY子句以返回时间范围内的所有点。 (你的GROUP BY语法也是错误的。正确的语法是GROUP BY time(1d)。)

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

答案 1 :(得分:0)

我必须更改才能将数据发送到查询到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)

要做到这一点,我使用了像这样的时刻js:

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

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