TSCreate 函数

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

语法

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

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

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

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

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

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

描述

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

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

返回结果

空的常规时间系列或使用给定集填充的常规时间系列,且可能包含用户定义的元数据。

示例

以下示例使用 TSCreate 来创建空的时间系列:
insert into daily_stocks values(
   901,'GBase 8s', TSCreate('daycal',
      '2011-01-03 00:00:00.00000',20,0,0, NULL));
以下示例使用 TSCreate 来创建已填充的常规时间系列:
select TSCreate('daycal',
      '2011-01-05 00:00:00.00000',
      20,
      0,
      NULL,
      set_data)::TimeSeries(stock_trade)
    from activity_load_tab
    where stock_id = 600;