content/flux/v0/stdlib/date/truncate.md
date.truncate() returns a time truncated to the specified duration unit.
(t: A, unit: duration, ?location: {zone: string, offset: duration}) => time where A: Timeable
{{% caption %}} For more information, see Function type signatures. {{% /caption %}}
({{< req >}}) Time to operate on.
Use an absolute time, relative duration, or integer.
Durations are relative to now().
({{< req >}}) Unit of time to truncate to.
Only use 1 and the unit of time to specify the unit.
For example: 1s, 1m, 1h.
Location used to determine timezone.
Default is the location option.
import "date"
import "timezone"
option location = timezone.location(name: "Europe/Madrid")
date.truncate(t: 2019-06-03T13:59:01Z, unit: 1s)
// Returns 2019-06-03T13:59:01.000000000Z
date.truncate(t: 2019-06-03T13:59:01Z, unit: 1m)
// Returns 2019-06-03T13:59:00.000000000Z
date.truncate(t: 2019-06-03T13:59:01Z, unit: 1h)
// Returns 2019-06-03T13:00:00.000000000Z
date.truncate(t: 2019-06-03T13:59:01Z, unit: 1d)
// Returns 2019-06-02T22:00:00.000000000Z
date.truncate(t: 2019-06-03T13:59:01Z, unit: 1mo)
// Returns 2019-05-31T22:00:00.000000000Z
date.truncate(t: 2019-06-03T13:59:01Z, unit: 1y)// Returns 2018-12-31T23:00:00.000000000Z
import "date"
option now = () => 2020-01-01T00:00:30.5Z
date.truncate(t: -30s, unit: 1s)
// Returns 2019-12-31T23:59:30.000000000Z
date.truncate(t: -1m, unit: 1m)
// Returns 2019-12-31T23:59:00.000000000Z
date.truncate(t: -1h, unit: 1h)// Returns 2019-12-31T23:00:00.000000000Z
import "date"
from(bucket: "example-bucket")
|> range(start: date.truncate(t: now(), unit: 1y))
import "date"
from(bucket: "example-bucket")
|> range(start: date.truncate(t: now(), unit: 1mo))