TSCreateIrr 函数

TSCreateIrr 函数会创建空的非常规时间系列或使用多个给定数据集填充的非常规时间系列。新时间系列还可以附加用户定义的元数据。

语法

TSCreateIrr(cal_name    lvarchar, 
        origin         datetime year to fraction(5), 
        threshold      integer, 
        zero           integer, 
        nelems         integer, 
        container_name lvarchar) 
returns TimeSeries with (handlesnulls);

TSCreateIrr(cal_name    lvarchar, 
        origin         datetime year to fraction(5), 
        threshold      integer, 
        zero           integer, 
        nelems         integer, 
        container_name lvarchar, 
        multiset_rows   multiset) 
returns TimeSeries with (handlesnulls);

TSCreateIrr(cal_name    lvarchar, 
        origin         datetime year to fraction(5), 
        threshold      integer, 
        zero           integer, 
        nelems         integer, 
        container_name lvarchar, 
        metadata       TimeSeriesMeta) 
returns TimeSeries with (handlesnulls);

TSCreateIrr(cal_name    lvarchar, 
        origin         datetime year to fraction(5), 
        threshold      integer, 
        zero           integer, 
        nelems         integer, 
        container_name lvarchar, 
        metadata       TimeSeriesMeta, 
        multiset_rows   multiset) 
returns TimeSeries with (handlesnulls);
cal_name
时间系列的日历名称。
origin
时间系列的源。这是数据可存储在系列中的日历的第一个有效日期。
threshold
时间系列的阈值。如果时间系列存储超出此数目的元素,它会转换为容器。否则,它会直接存储在包含它的行中。缺省值为 20。包含行中时间系列的行大小不应该超出 1500 个字节。

如果在达到此阈值前,时间系列包含太多字节无法放在行中,那么时间系列会放入容器。

zero
必须为 0
nelems
为生成的时间系列分配的元素数。如果元素数超出此值,那么会通过重新分配扩展时间系列。
container_name
用于存储时间系列的容器名称。可为 NULL
metadata
要放在时间系列中的用户定义的元数据。请参阅使用元数据创建时间系列,以获取元数据的更多信息。
multiset_rows
用于填充时间系列的多个行集。这些行的类型必须与时间系列的子类型相同。

描述

如果使用 metadata 自变量调用 TSCreateIrr,那么元数据会保存在时间系列中。

请参阅使用 TSCreate 或 TSCreateIrr 函数创建时间系列,以获取如何使用此函数的描述。

返回结果

空的非常规时间系列或使用给定或可选多个集填充的非常规时间系列包含用户定义的元数据。

示例

以下示例使用 TSCreateIrr 来创建空的非常规时间系列:
select TSCreateIrr('daycal',
      '2011-01-05 00:00:00.00000',
      20,
      0,
      NULL,
      set_data)::TimeSeries(stock_trade)
    from activity_load_tab
    where stock_id = 600;
以下示例使用 TSCreateIrr 来创建已填充的非常规时间系列:
insert into activity_stocks 
    select 1234,
      TSCreateIrr('daycal',
         '2011-01-03 00:00:00.00000'::datetime year to fraction(5),
         20, 0, NULL,
         set_data)::timeseries(stock_trade)
    from activity_load_tab;