duration
Syntax
duration(X)
Arguments
X is a STRING scalar. It is composed of an integer and a unit of time (y, M, w, d, B, H, m, s, ms, us, ns). For examples: “2y”, “3M”, “30m”, “100ms”.
Details
Convert a string scalar to DURATION type. It indicates the length of a time interval.
Note:
The unit of the time interval used for grouping cannot be more granular than the unit of the temporal column.
Time units are case sensitive, for example, “M” means month and “m” means minute. If the unit of the time interval is M, use function month to convert the time column values to months.
Data of DURATION type cannot participate in calculations. For example, comparisons between DURATION values (such as
duration(`20ms) >= duration(`10ms)
) are not supported.
Examples
$ y=duration("20H")
$ y
20H
$ typestr(y)
DURATION
In function bar, we can use a number followed by a time unit to indicate a duration.
$ t=table(take(2018.01.01T01:00:00+1..10,10) join take(2018.01.01T02:00:00+1..10,10) join take(2018.01.01T08:00:00+1..10,10) as time, rand(1.0, 30) as x)
$ select max(x) from t group by bar(time, 5);
bar_time |
max_x |
---|---|
2018.01.01T01:00:00 |
0.8824 |
2018.01.01T01:00:05 |
0.8027 |
2018.01.01T01:00:10 |
0.572 |
2018.01.01T02:00:00 |
0.8875 |
2018.01.01T02:00:05 |
0.8542 |
2018.01.01T02:00:10 |
0.4287 |
2018.01.01T08:00:00 |
0.9294 |
2018.01.01T08:00:05 |
0.9804 |
2018.01.01T08:00:10 |
0.2147 |
$ select max(x) from t group by bar(time, 1m);
bar_time |
max_x |
---|---|
2018.01.01T01:00:00 |
0.8824 |
2018.01.01T02:00:00 |
0.8875 |
2018.01.01T08:00:00 |
0.9804 |