TL;DR InfluxDB Tech Tips - Time Range and Timestamps

Navigate to:

To learn about Flux Time Ranges and Flux Time Stamps, check out these blogs.

In this post we recap the week’s most interesting InfluxDB and TICK-stack related issues, workarounds, time range and timestamps how-tos and Q&A from GitHub, IRC and the InfluxDB Google Group that you might have missed.

Query data that occurs in the future

Q: InfluxDB doesn’t return anything when I try to select everything in my measurement:

> INSERT projections happiness=9 1545936300000000000
> INSERT projections happiness=8 1545936360000000000
> INSERT projections happiness=9 1545936420000000000
> SELECT * FROM projections
>

A: By default, InfluxQL queries cover the time range between epoch 0 and now(). now() is your server’s current timestamp. Your query returns no results because all of your data occur after now().

The following query asks InfluxDB to return all data that occur between now() and 156 weeks from now():

> SELECT * FROM projections WHERE time > now() AND time <= now() + 156w
name: projections
-----------------
time                  happiness
2018-12-27T18:45:00Z  9
2018-12-27T18:46:00Z  8
2018-12-27T18:47:00Z  9

Find the earliest and latest timestamp in your data

Q: How can I get the first timestamp in my data and last timestamp in my data? The functions first() and last() return epoch 0:

> SELECT first(usage_idle) FROM cpu WHERE cpu='cpu-total'
name: cpu
---------
time                  first
1970-01-01T00:00:00Z  97.65

> SELECT last(usage_idle) FROM cpu WHERE cpu='cpu-total'
name: cpu
---------
time                  last
1970-01-01T00:00:00Z  96.90077480629843

A: This behavior will be fixed. As a workaround, use LIMIT in your query to get the first timestamp and use a combination of ORDER BY time DESC and LIMIT to get the last timestamp:

First timestamp:

> SELECT usage_idle FROM cpu WHERE cpu='cpu-total' LIMIT 1
name: cpu
---------
time                  usage_idle
2016-04-11T17:36:30Z  97.65

Last timestamp:

> SELECT usage_idle FROM cpu WHERE cpu='cpu-total' ORDER BY time DESC LIMIT 1
name: cpu
---------
time                  usage_idle
2016-04-27T19:15:25Z  96.90077480629843

Calculate the duration between timestamps

Q: How can I calculate the difference between the timestamps below?

name: response
--------------
time                  ticket  value
2016-04-27T16:45:01Z  1       1
2016-04-27T18:58:05Z  1       2

A: InfluxDB version 0.13 will have the new elapsed() function. elapsed() returns the difference between subsequent timestamps in a single field.

The following query returns the difference (in seconds) between your two points:

> SELECT elapsed(value,1s) FROM response WHERE ticket='1'
name: response
--------------
time                  elapsed
2016-04-27T18:58:05Z  7984

InfluxDB 0.13 is available in the nightly downloads.

For more InfluxDB tips, check out our Frequently Encountered Issues page and feel free to post your questions in the InfluxDB users group.

What's next?

  • Download and get started with InfluxDB!
  • Attend one of our FREE virtual training seminars.
  • Got a question and need an immediate answer from the InfluxData Support team? Support subscriptions with unlimited incidents start at just $399 a month. Check out all the support options here.