TL;DR InfluxDB Tech Tips - Using Single Quotes vs Double Quotes Within InfluxQL
By Regan Kuchan / Jul 21, 2016 / Tech Tips
In this post we recap the week’s most interesting InfluxDB and TICK-stack related issues, workarounds using single quotes vs double quotes within InfluxQL, how-tos and Q&A from GitHub, IRC and the InfluxDB Google Group that you might have missed.
Specifying time in queries
Q: I see that when I write data to InfluxDB, Line Protocol only accepts time in epoch format. Do queries also only accept time in epoch format?
A: InfluxQL accepts several different time formats in addition to epoch timestamps. Queries work with both relative time formats and absolute time formats.
For relative time, use
now() with a valid time duration unit to specify a time based on the current Unix time of the server. For example, select everything from the measurement
einstein with timestamps that occur in the past 10 minutes:
SELECT * FROM "einstein" WHERE time > now() - 10m
For absolute time, use date-time strings in RFC3339-like format, date-time strings in RFC3339 format, or epoch time. For example, the following three queries select everything from the measurement
absolutismus where the time is Wednesday, July 20, 2016 at 16:00:00:
SELECT * FROM "absolutismus" WHERE time = '2016-07-20 16:00:00' SELECT * FROM "absolutismus" WHERE time = '2016-07-20T16:00:00Z' SELECT * FROM "absolutismus" WHERE time = 1469030400000000000
For more on specifying time in queries, check out Data Exploration.
Specifying multiple functions in a query
Q: I want to calculate the minimum and maximum for the same field at the same time. Currently, I’m doing this with two queries separated by a semicolon but it seems like a lot of text. Is there a simpler way to do this?
The two queries:
curl -GET 'http://localhost:8086/query?db=claymation&pretty=true' --data-urlencode 'q=SELECT min("movement") FROM "take_1";SELECT max("movement") FROM "take_1"'
A: Yes! You can include more than one function in a single query; just separate the functions with a comma:
SELECT min("movement"),max("movement") FROM "take_1"
Selecting data where a tag has no value
Q: I want to select field values from a measurement where a specific tag has no value. I’ve tried to do this with
"" but I get no results back. Is there a way to do this in InfluxQL?
> SELECT * FROM "vases" name: vases ----------- time origin priceless 2016-07-20T18:42:00Z 8 2016-07-20T18:42:00Z 1 yes > SELECT * FROM "vases" WHERE priceless=""
A: Yes, specify empty tag values with single quotes:
> SELECT * FROM "vases" WHERE priceless='' name: vases ----------- time origin priceless 2016-07-20T18:42:00Z 8
Check out single quoting and double quoting in queries for more information!
- Looking for InfluxDB clustering on your infrastructure? Get started with InfluxDB Enterprise Beta, now available for evaluation.
- Download and get started with InfluxDB 1.0 Beta 3
- Schedule a FREE 20 minute consultation with a Solutions Architect to review your InfluxDB project
- Attend one of our FREE virtual training seminars.