Запрос Influxdb на дату

У меня есть таблица в infxdb, в которой есть столбец под названием «expirydate». В столбце у меня есть несколько дат, например. «2016-07-14» или «2016-08-20». Я хочу выбрать только дату 2016-07-14, но не знаю, как это сделать? Мой запрос в настоящее время:

SELECT * FROM tablee where expirydate = '2016-07-14' limit 1000

Но это не работает. Кто-нибудь может мне помочь?


person Jonathon Hill    schedule 11.07.2016    source источник


Ответы (2)


Предполагая, что значение table**e** является действительным измерением ...

Если вы хотите выбрать все точки дня «2016-07-14», ваш запрос должен выглядеть примерно так.

Запрос:

SELECT * FROM tablee where time >= '2016-07-14 00:00:00' and time < '2016-07-15 00:00:00'

Вас также может заинтересовать строка даты и времени притока в запросе.

См.: https://docs.influxdata.com/influxdb/v0.9/query_language/data_exploration/#relative-time

Строки даты и времени
Укажите время с помощью строк даты и времени. Строки даты и времени могут принимать два формата: YYYY-MM-DD HH: MM: SS.nnnnnnnnn и YYYY-MM-DDTHH: MM: SS.nnnnnnnnnZ, где вторая спецификация - RFC3339. Наносекунды (nnnnnnnnn) необязательны в обоих форматах.

Примечание. limit api может быть избыточным в исходном запросе, поскольку он предназначен для ограничения запроса на возврат данных, превышающих 1000 точек.

person Samuel Toh    schedule 11.07.2016

Мне пришлось заставить приток обрабатывать мою «строковую дату» как строку. Это работает:

SELECT * FROM tablee where expirydate=~ /2016-07-14/ limit 1000;
person Jonathon Hill    schedule 11.07.2016
comment
Значит, предложенный мной запрос вам не подошел? Кроме того, вы пробовали цитировать строку? Выполняя =~ /.../~ means are running a regular expression. Just out of curiousity is expirydate` на самом деле тегом, я полагаю, вы на самом деле не ищете запрос, фильтруя его по реальной дате ... Предполагая, что expirydate является тегом, тогда совпадение строки сделало бы работу. - person Samuel Toh; 11.07.2016