Salut,
après quelques essais, j'ai pu obtenir des données de notre PI Archive. Nous utilisons PI (Osisoft) pour archiver nos données de processus.
Avec la requête suivante, j'ai obtenu les données mais l'horodatage n'est pas là :
SELECT t1.tag, t1.time, t1.value, t1.svalue,
t1.status, t1.flags
FROM picomp t1
WHERE ( ( ( t1.tag = 'AL2_Geschwindigkeit_Linienmotor_Formerstation' ) AND ( (t1.time >= ( '2017/03/05 1:47:16 PM' )) AND (t1.time <= ( '2017/03/05 2:44:40 PM' )) ) ) )
La colonne de l'horodatage est simplement vide (numérique, continue).
Ensuite, j'ai eu l'idée que la colonne de l'horodatage n'est pas numérique. J'ai essayé de convertir l'heure en date avec la requête suivante :
SELECT t1.tag, TO_Date(SUBSTR (time, 1, 15),'yyyymmdd') time, t1.value, t1.svalue,
t1.status, t1.flags
FROM picomp t1
WHERE ( ( ( t1.tag = 'AL2_Geschwindigkeit_Linienmotor_Formerstation' ) AND ( (t1.time >= ( '2017/03/05 1:47:16 PM' )) AND (t1.time <= ( '2017/03/05 2:44:40 PM' )) ) ) )
Mais là j'ai l'erreur :
[PIODBC] [PIOLEDB] [SUBSTR] La résolution de surcharge a échoué pour les arguments (DateTime, Int16, Int16). [SQLSTATE=HY000]
Qu'est-ce que j'ai fait de mal ?
Quelqu'un peut-il m'aider ?
Je sais que c'est un vieux post, mais regarde le Outils PI Aveva/OSISoft Complément, il peut vous aider à rédiger ces requêtes pour vous.
Ok...maintenant, cela fonctionne avec le SQL suivant
SELECT t1.tag, Cast (time as string) STRING_time, t1.value, t1.svalue,
t1.status, t1.flags
FROM picomp t1
WHERE ( ( ( t1.tag = 'AL2_Geschwindigkeit_Linienmotor_Formerstation' ) AND ( (t1.time >= ( '2017/03/05 1:47:16 PM' )) AND (t1.time <= ( '2017/03/05 2:44:40 PM' )) ) ) )
Le ";" le problème est toujours là. Mais ce n'est pas mon problème. Je peux le supprimer facilement.
Mon problème est que je n'ai pas le temps. Il semble que JMP convertisse les données temporelles en données numériques. Mais dans PI Archive, cela semble être une chaîne ou quelque chose de relatif. Si j'utilise Microsoft Access, j'ai le temps. Access me dit que le type de données est « Texte ». Peut-être que je demanderai directement à OSISOFT comment obtenir l'heure par SQL.
Sous le lien suivant, vous trouverez un exemple de ce " ; " -Problème d'Osisoft.
https://techsupport.osisoft.com/Troubleshooting/KB/KB01377
J'utilise JMP Pro 13.1.
Je commence par le générateur de requêtes. Mais je dois passer à "Custom SQL". Parce que la requête du générateur de requêtes ne fonctionne pas. Par exemple, je dois supprimer le " ; " à la fin de la requête. Et il y a d'autres choses. C'est ennuyeux mais gérable.