2016-07-11 51 views
0

Ich habe eine Tabelle in Influxdb, die eine Spalte namens "expirydate" hat. In der Spalte habe ich einige Daten, z.B. "2016-07-14" oder "2016-08-20". Ich möchte nur das Datum 2016-07-14 auswählen, aber ich bin mir nicht sicher, wie? Meine Frage ist jetzt:Abfrage Influxdb für ein Datum

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

Aber das funktioniert nicht. Kann mir bitte jemand helfen?

Antwort

2

den Wert table**e** ist eine gültige Messung ...

Wenn Sie schauen, um alle Punkte für den Tag ‚2016.07.14‘ auswählen und dann Ihre Abfrage sollte wie folgt aussehen etwas Unter der Annahme.

Abfrage:

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

könnten Sie auch den Zustrom Datum des Zeitzeichenfolge in Frage interessiert sein.

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

Datum Zeit Strings
Geben Sie Zeit mit Datum Zeit Strings. Datum Zeit Zeichenfolgen können zwei Formate annehmen: JJJJ-MM-TT HH: MM: SS.nnnnnnnnn und JJJJ-MM-TTTHH: MM: SS.nnnnnnnnnZ, wo die zweite Spezifikation ist RFC3339. Nanosekunden (nnnnnnnnn) sind in beiden Formaten optional.

Hinweis: Die limit api könnte in Ihrer ursprünglichen Abfrage überflüssig sein, da sie es Beschränkung auf die Abfrage zu verhängen von mehr als 1.000 Punktdaten zurück.

1

Ich musste den Zustrom erzwingen, um mein 'String-Datum' als String zu behandeln. Das funktioniert:

SELECT * FROM tablee where expirydate=~ /2016-07-14/ limit 1000; 
+0

Also die von mir vorgeschlagene Abfrage funktionierte nicht für Sie? Haben Sie auch versucht, die Zeichenfolge zu enquotieren? Doing '= ~ /.../~ bedeutet, dass ein regulärer Ausdruck ausgeführt wird. Nur aus Neugier ist 'expirydate' tatsächlich ein Tag, ich nehme an, dass Sie nicht wirklich nach einer Abfrage suchen, indem Sie nach echtem Datum filtern ... Angenommen,' expirydate' ist ein Tag, dann hätte eine String-Übereinstimmung die Aufgabe erfüllt. –