TSToXML 函数返回时间系列的 XML 表示法。
TSToXML(doctype lvarchar, id lvarchar, ts timeseries, output_max integer default 0) returns lvarchar; TSToXML(doctype lvarchar, id lvarchar, ts timeseries) returns lvarchar;
值 | 结果 |
---|---|
无值 | 32 768 字节 |
负整数 | 232-1 字节 |
1 到 4096 | 4096 字节 |
4096 到 232-1 | 指定的字节数 |
使用 TSToXML 函数可为少量数据提供 XML 格式的标准信息交换表示法。
XML 输出中的顶级标记是 TSToXML 函数的第一个参数。
id 标记必须唯一标识时间系列并在 XML 输出中引用它所基于的行。
AllData 标记指示返回了所有数据还是因超过 output_max 参数设置的大小而截断了数据。
其余的 XML 标记表示 TimeSeries 子类型及其列,包括时间戳记。
特殊字符 <、>、&、' 和 " 将替换为其预定义的 XML 实体。
指定的 XML 格式时间系列,具体取决于 output_max 参数设置的大小。AllData 标记指示返回了所有数据 (1) 还是截断了数据 (0)。
以下查询使用 Clip 函数从 TimeSeries 子类型 actual 中选择一个小时的时间系列数据,以 XML 格式返回:
SELECT TSToXML('meterdata', esi_id, Clip(actual, '2010-09-08 12:00:00'::datetime year to second, '2010-09-08 13:00:00'::datetime year to second ) ) FROM ts_data WHERE esi_id = '2250561334';
会返回以下 XML 数据:
<meterdata> <id>2250561334</id> <AllData>1</AllData> <meter_data> <tstamp>2010-09-08 12:15:00.00000</tstamp> <value>0.9170000000</value> </meter_data> <meter_data> <tstamp>2010-09-08 12:15:00.00000</tstamp> <value>0.4610000000</value> </meter_data> <meter_data> <tstamp>2010-09-08 12:15:00.00000</tstamp> <value>4.1570000000</value> </meter_data> <meter_data> <tstamp>2010-09-08 12:15:00.00000</tstamp> <value>6.3280000000</value> </meter_data> <meter_data> <tstamp>2010-09-08 12:15:00.00000</tstamp> <value>2.6690000000</value> </meter_data> </meterdata>
TimeSeries 子类型的名称为 meter_data,其列为 tstamp 和 value。
AllData 标记中的值 1 指示在本示例中返回了所有数据。