Как получить время начала периода, используя SQL поверх PI-ODBC? - PullRequest
1 голос
/ 06 марта 2012

Я использую самую последнюю библиотеку 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, который представляет end периода, указанного в столбце timestep.

Как я могу получить время начала для того же периода? Я знаю, что PI-SQL поддерживает некоторые литеральные математические литералы даты, но я не могу понять синтаксис для time - RELDATE('1h') или чего-либо еще, что затем может быть псевдонимом starttime.

(Предостережение: я не использую PI, поэтому я летаю вслепую и не могу просто пробовать и ошибаться. У меня есть Руководство для поставщика данных PI OLEDB, но оно довольно скудное по деталям.)

Я понимаю, что мог бы что-то совместить в SQL Server, но я бы предпочел использовать функции даты PI, поэтому, когда SQL Server возвращает данные, дополнительная работа не требуется. Я работаю с рядом значений timestep, так что это не просто статический DATEADD () в SQL Server.

1 Ответ

0 голосов
/ 16 марта 2012

Оказывается, time - RELDATE('1h') отлично работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...