duration

Syntax

duration(X)

Arguments

X is a STRING scalar composed of an integer and a unit of time. It supports the following units of time: y, M, w, d, B, H, m, s, ms, us, ns, and trading calendar identifier consisting of four capital letters. For example, X can be "2y", "3M", "30m", "100ms", and "3XNYS". Note that function duration won't verify whether the trading calendar file is stored in marketHolidayDir.

Details

Convert X to DURATION type which 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
// output
20H

typestr(y)
// output
DURATION

duration("3XNYS")
// output
3XNYS

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

Related information: Trading Calendar