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