PutElem 函数

PutElem 函数在提供的行类型中指示的时间点将元素添加到时间系列。

语法

PutElem(ts         TimeSeries, 
       row_value  row,
       flags      integer default 0) 
returns TimeSeries;
ts
要对其执行操作的时间系列。
row_value
存储在时间系列中的新行类型。
flags
flags 参数值中描述了 flags 参数的有效值。缺省值为 0

描述

如果时间戳记是 NULL,数据会追加到时间系列(对于常规时间系列),或者发生错误(对于非常规时间系列)。

对于常规时间系列,如果给定时间点存在数据,会更新为新数据;否则,会插入新数据。

对于非常规时间系列,如果给定时间点不存在任何数据,会插入新数据。如果给定时间点存在数据,以下算法用于确定放置数据的位置:
  1. 将时间戳记舍入为下一秒。
  2. 向后搜索早于新时间戳记的第一个元素。
  3. 在此时间戳记加 10 微秒处插入新数据。

传入的行类型必须符合时间系列的子类型。

无法更新隐藏的元素。

PutElem 的 API 等效项是 ts_put_elem()

返回结果

包含新值的修改的时间系列。

示例

以下示例将元素追加到时间系列:
update daily_stocks
set stock_data = PutElem(stock_data,
   row(NULL::datetime year to fraction(5), 
   2.3, 3.4, 5.6, 67)::stock_bar)
   where stock_name = 'GBase';
以下示例会更新时间系列:
update activity_stocks
set activity_data = PutElem(activity_data,
   row('2011-08-25 09:06:00.00000', 
      6.25, 1000, 1, 007, 2, 1)::stock_trade)
   where stock_id = 600;