duration
语法
duration(X)
参数
X 是一个字符串,为一个数字与时间单位(y, M, w, d, B, H, m, s, ms, us, ns)所组成。例如:”2y”, “3M”, “30m”, “100ms”等。
详情
将一个字符串标量转换为 DURATION 类型。表示一个时间区间。
注意:
用于分组的时间区间单位应需不小于时间列的单位。
时间单位区分大小写,例如:M 表示月份,m 表示分钟;若分组的时间区间单位为 M,时间列需要通过函数 month 转换为对应月份。
DURATION 类型数据之间不能进行任何运算。例如,不能进行比较运算:duration(`20ms) >= duration(`10ms)。
例子
$ y=duration("20H")
$ y
20H
$ typestr(y)
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)
//不指定时间单位,取时间列 time 的单位 s。
$ 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 |
//指定单位为 m,对时间列按照1分钟进行分组
$ 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 |