Время поиска с отметкой времени в миллисекундах influxdb

В Influx я заменяю время на время, заданное GPS-модулем. Это сохранит дату в эпоху Unix, например, 1432600783000.

Когда я пытаюсь выполнить такой запрос в influxdb:

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

Дата 1432080000000: GMT: среда, 20 мая 2015 г. 00:00:00 GMT Ваш часовой пояс: 19/5/2015 21:00:00 GMT-3:00

Дата 1432177199000: GMT: Чт, 21 мая 2015 г. 02:59:59 GMT Ваш часовой пояс: 20/5/2015 23:59:59 GMT-3:00

Он ничего не возвращает, как правильно отфильтровать дату, например, поставить точки между двумя датами.

Спасибо.


person diego    schedule 26.05.2015    source источник


Ответы (2)


Вы указываете секунды как точность в запросе, но предоставляете временные метки в миллисекундах. 1432080000000s означает 1432080000000 в секундах, то есть 22 октября 47350 года.

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

Кроме того, вы не можете выполнить GROUP BY без функции агрегирования в операторе SELECT. Нет смысла запрашивать ежедневную сводку по всем баллам, а затем не давать возможности агрегировать результаты в ежедневные значения. Удалите предложение GROUP BY, чтобы вернуть все точки во временном диапазоне. (Кроме того, ваш синтаксис GROUP BY неверен. Правильным синтаксисом будет GROUP BY time(1d).)

Ваш запрос должен быть: select * from items where id = '11111111111' and time > 1432080000s and time < 1432177199s

person beckettsean    schedule 26.05.2015

Я должен измениться, прежде чем отправлять данные в запрос на время 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, что отражает часовой пояс, в котором я нахожусь.

person diego    schedule 27.05.2015