我正在使用最新的PI-OLEDB库将OSIsoft PI Historian中的聚合视图中的数据读取到SQL Server中。例如:
SELECT time, value
FROM piavg
WHERE
timestep = RELDATE('1h')
AND tag = TAGNAME('mytag')
AND time > DATE('4-Mar-12 00:00:00');
不幸的是,聚合视图(PIavg等)只提供一个time
列,它代表timestep
列指定的句点的 end 。 / p>
如何在同一时期检索开始时间?我知道PI-SQL支持一些时髦的日期数学文字,但我无法弄清楚time - RELDATE('1h')
的语法或任何可以作为starttime
别名的语法。
(警告:我不使用PI,所以我是盲目的,不能只是试错了。我有PI OLEDB数据提供商手册,但细节上很少。)
我意识到我可以在SQL Server中拼凑一些东西,但我宁愿使用PI日期函数,所以当SQL Server获取数据时,不需要额外的工作。我正在处理许多timestep
值,因此它不仅仅是SQL Server中的静态DATEADD()。
答案 0 :(得分:0)
事实证明time - RELDATE('1h')
完美无缺。