Obtenir une valeur en soustrayant les deux dernières valeurs
Modérateurs : jturlier, Météo Villarzel
-
- Messages : 263
- Enregistré le : 15 févr. 2014, 09:23
- Localisation : San Sebastián, España
- Contact :
Obtenir une valeur en soustrayant les deux dernières valeurs
Bonjour à tous
J'écris ce message pour demander de l'aide.
C'est incroyable pour moi que je ne puisse pas le réparer moi-même.
Il s'agit des éléments suivants :
J'utilise le magnifique build NOAAsql :
http://kocher.es/NOAAsql/NOAA.php
Tout fonctionne parfaitement; eh bien, la table "noaa_jour" a un champ appelé "duree_jour_minutes".
Objectif:
Obtenir une valeur en soustrayant du dernier enregistrement du champ « duréee_jour_minutes », l'avant-dernière valeur de ce même champ.
J'ai juste tourné en rond sans trouver la solution
Je soupçonne que vous devez avoir une solution simple
J'écris ce message pour demander de l'aide.
C'est incroyable pour moi que je ne puisse pas le réparer moi-même.
Il s'agit des éléments suivants :
J'utilise le magnifique build NOAAsql :
http://kocher.es/NOAAsql/NOAA.php
Tout fonctionne parfaitement; eh bien, la table "noaa_jour" a un champ appelé "duree_jour_minutes".
Objectif:
Obtenir une valeur en soustrayant du dernier enregistrement du champ « duréee_jour_minutes », l'avant-dernière valeur de ce même champ.
J'ai juste tourné en rond sans trouver la solution
Je soupçonne que vous devez avoir une solution simple
Davis Vantage Pro2 +, Windows 10, Windows 7 (64), Graphweather 3.0.15, Weatherlink 6.0.3, template Pierre-André, template Jachym
- jturlier
- Administrateur du site
- Messages : 394
- Enregistré le : 10 déc. 2014, 10:20
- Localisation : Sérignan 34410
- Contact :
Re: Obtenir une valeur en soustrayant les deux dernières valeurs
Bonjour Javier,
que penses-tu de ça ?
select amj,( a.duree_jour_minutes -(select b.duree_jour_minutes from noaa_jour b where b.tstamp= (a.tstamp-86400) )) delta from noaa_jour a order by 1 desc;
Tu peux aussi, à partir de cette requête créer une VIEW.
Bien amicalement
Jean
que penses-tu de ça ?
select amj,( a.duree_jour_minutes -(select b.duree_jour_minutes from noaa_jour b where b.tstamp= (a.tstamp-86400) )) delta from noaa_jour a order by 1 desc;
Tu peux aussi, à partir de cette requête créer une VIEW.
Bien amicalement
Jean
Jean
Station :
VP2pro + anémomètre ultrasons et console Vue
Cumulus 1.9.4 + Cumulus2SQL + MySQL
Audio :
FR
PC :
W10 64bits migré
http://meteoserignan.ddns.net
Station :
VP2pro + anémomètre ultrasons et console Vue
Cumulus 1.9.4 + Cumulus2SQL + MySQL
Audio :
FR
PC :
W10 64bits migré
http://meteoserignan.ddns.net
-
- Messages : 263
- Enregistré le : 15 févr. 2014, 09:23
- Localisation : San Sebastián, España
- Contact :
Re: Obtenir une valeur en soustrayant les deux dernières valeurs
Bonjour jean
Merci beaucoup pour votre réponse et pour votre suggestion.
J'ai essayé votre "Select", dont le résultat fournit une liste de valeurs de toute la table.
Ladite liste commence le 11 juillet 2022 :
20200711 -2
20200710 -3
20200709 -3
20200708 -2
20200707 -2
20200706 -2
--------------------
et comprend l'ensemble du table.
Ce dont j'ai besoin est une valeur unique (mesurée en secondes) de la différence dans le champ "duréee_jour_minutes" du jour en cours par rapport au jour précédent.
Le but est de remplacer le "script":
http://kocher.es/weatherdisplay/duracion_dia_modif.php
qui a cessé de fonctionner correctement.
Merci beaucoup pour votre soutient
Javier
Merci beaucoup pour votre réponse et pour votre suggestion.
J'ai essayé votre "Select", dont le résultat fournit une liste de valeurs de toute la table.
Ladite liste commence le 11 juillet 2022 :
20200711 -2
20200710 -3
20200709 -3
20200708 -2
20200707 -2
20200706 -2
--------------------
et comprend l'ensemble du table.
Ce dont j'ai besoin est une valeur unique (mesurée en secondes) de la différence dans le champ "duréee_jour_minutes" du jour en cours par rapport au jour précédent.
Le but est de remplacer le "script":
http://kocher.es/weatherdisplay/duracion_dia_modif.php
qui a cessé de fonctionner correctement.
Merci beaucoup pour votre soutient
Javier
Davis Vantage Pro2 +, Windows 10, Windows 7 (64), Graphweather 3.0.15, Weatherlink 6.0.3, template Pierre-André, template Jachym
- jturlier
- Administrateur du site
- Messages : 394
- Enregistré le : 10 déc. 2014, 10:20
- Localisation : Sérignan 34410
- Contact :
Re: Obtenir une valeur en soustrayant les deux dernières valeurs
Re-bonjour Javier,
étant donné que les valeurs dans le champ durée-jour_minutes sont en minutes tu ne peux pas espérer obtenir des secondes en résultat à moins de multiplier par 60 !
Il faut donc que tu envisages d'utiliser autre chose pour résoudre ton problème si tu veux le résultat en secondes !
Là je n'ai pas de solution !!!
étant donné que les valeurs dans le champ durée-jour_minutes sont en minutes tu ne peux pas espérer obtenir des secondes en résultat à moins de multiplier par 60 !
Il faut donc que tu envisages d'utiliser autre chose pour résoudre ton problème si tu veux le résultat en secondes !
Là je n'ai pas de solution !!!
-
- Messages : 263
- Enregistré le : 15 févr. 2014, 09:23
- Localisation : San Sebastián, España
- Contact :
Re: Obtenir une valeur en soustrayant les deux dernières valeurs
Merci beaucoup Jean
il faudra penser à autre chose
il faudra penser à autre chose
Davis Vantage Pro2 +, Windows 10, Windows 7 (64), Graphweather 3.0.15, Weatherlink 6.0.3, template Pierre-André, template Jachym
- PascalWMR
- Messages : 328
- Enregistré le : 16 févr. 2014, 09:28
- Localisation : CONFLANS EN JARNISY (F54800)
- Contact :
Re: Obtenir une valeur en soustrayant les deux dernières valeurs
Bonjour à tous
La solution de Jean est bonne, il suffit de multiplier le delta par 60 et de limiter le nombre d'enregistrement comme ceci
On a alors la différence de temps entre la durée du jour et celle du jours précédent en secondes
A moins que ça ne soit pas cela que tu recherche Javier
A+
Pascal
La solution de Jean est bonne, il suffit de multiplier le delta par 60 et de limiter le nombre d'enregistrement comme ceci
Code : Tout sélectionner
select amj,( a.duree_jour_minutes -(select b.duree_jour_minutes from noaa_jour b where b.tstamp= (a.tstamp-86400) ))*60 delta from noaa_jour a order by 1 desc LIMIT 1;
A moins que ça ne soit pas cela que tu recherche Javier
A+
Pascal
Station VP2Plus, Windows 10 64 bits,WeatherLink 6.0.5, VP2SQL, Graphiques Dynamiques à partir d'une BDD MySQL
Météo Conflans-en-Jarnisy
Météo Conflans-en-Jarnisy
- PascalWMR
- Messages : 328
- Enregistré le : 16 févr. 2014, 09:28
- Localisation : CONFLANS EN JARNISY (F54800)
- Contact :
Re: Obtenir une valeur en soustrayant les deux dernières valeurs
Re
N'utiliserait-il pas la fonction strftime() et ton site ne serait-il pas passé à PHP 8.1 ???
Auquel cas, strftime est devenu obsolète et n'est plus interprété. Il provoque même en erreur.
A la place, il faut utiliser la fonction IntlDateFormatter
A+
Pascal
Au fait Javier, pourquoi le script à arrêté de fonctionner correctement?Javier a écrit : ↑01 sept. 2022, 09:38
Ce dont j'ai besoin est une valeur unique (mesurée en secondes) de la différence dans le champ "duréee_jour_minutes" du jour en cours par rapport au jour précédent.
Le but est de remplacer le "script":
http://kocher.es/weatherdisplay/duracion_dia_modif.php
qui a cessé de fonctionner correctement.
N'utiliserait-il pas la fonction strftime() et ton site ne serait-il pas passé à PHP 8.1 ???
Auquel cas, strftime est devenu obsolète et n'est plus interprété. Il provoque même en erreur.
A la place, il faut utiliser la fonction IntlDateFormatter
A+
Pascal
Station VP2Plus, Windows 10 64 bits,WeatherLink 6.0.5, VP2SQL, Graphiques Dynamiques à partir d'une BDD MySQL
Météo Conflans-en-Jarnisy
Météo Conflans-en-Jarnisy
-
- Messages : 263
- Enregistré le : 15 févr. 2014, 09:23
- Localisation : San Sebastián, España
- Contact :
Re: Obtenir une valeur en soustrayant les deux dernières valeurs
Salut Pascal
Merci pour votre intérêt (comme toujours) et pour votre commentaire.
Vous pouvez voir le code de la "page" à cette adresse :
https://kocher.es/weatherdisplay/duraci ... p?sce=view
Javier
Merci pour votre intérêt (comme toujours) et pour votre commentaire.
Vous pouvez voir le code de la "page" à cette adresse :
https://kocher.es/weatherdisplay/duraci ... p?sce=view
Javier
Modifié en dernier par Javier le 11 sept. 2022, 05:49, modifié 1 fois.
Davis Vantage Pro2 +, Windows 10, Windows 7 (64), Graphweather 3.0.15, Weatherlink 6.0.3, template Pierre-André, template Jachym
- PascalWMR
- Messages : 328
- Enregistré le : 16 févr. 2014, 09:28
- Localisation : CONFLANS EN JARNISY (F54800)
- Contact :
Re: Obtenir une valeur en soustrayant les deux dernières valeurs
Bonjour et bonjour Javier
Ton serveur tourne avec PHP 5.6.11 donc il ne devrait pas y avoir de problèmes de compatibilité.
Par contre, la variable $changeinday n'est définie nulle part sauf dans testtags.php ou effectivement elle a la valeur -00:00:01. C'est conforme à ce qui s'affiche -(0 Min 01 Seg)
J'ai essayé de debugger le script mais c'est compliqué car
A+
Pascal
Ton serveur tourne avec PHP 5.6.11 donc il ne devrait pas y avoir de problèmes de compatibilité.
Par contre, la variable $changeinday n'est définie nulle part sauf dans testtags.php ou effectivement elle a la valeur -00:00:01. C'est conforme à ce qui s'affiche -(0 Min 01 Seg)
J'ai essayé de debugger le script mais c'est compliqué car
- je n'utilise pas Weather Display
- il me manque les fichiers Settings.php et common.php
- et le scripts doit être complètement réécrit car il utilise des fonctions obsolètes comme date_sunrise, date_sunset, strtotime(), strftime() qui ne fonctionnent plus sous PHP 8.1 que j'utilise.
- la ligne 191 du script est buggéele format de mktime est mktime(hour, minute, second, month, day, year)
Code : Tout sélectionner
$now = mktime();
A+
Pascal
Station VP2Plus, Windows 10 64 bits,WeatherLink 6.0.5, VP2SQL, Graphiques Dynamiques à partir d'une BDD MySQL
Météo Conflans-en-Jarnisy
Météo Conflans-en-Jarnisy
-
- Messages : 263
- Enregistré le : 15 févr. 2014, 09:23
- Localisation : San Sebastián, España
- Contact :
Re: Obtenir une valeur en soustrayant les deux dernières valeurs
bonjour Pascale
Comme on dit en Espagne : "Has dado en el clavo"
C'était exactement le problème:
Le chiffre de variation de la durée du jour est obtenu à partir du logiciel "WeatherDisplay" via le fichier "testtags.php".
Pour une raison inconnue, ledit logiciel (que je mets habituellement à jour) avait perdu les données de latitude et de longitude de ma position.
Dès que j'ai réussi à mettre à jour ces valeurs, la durée du jour (je pense) est correcte.
http://kocher.es/weatherdisplay/duracion_dia_modif.php
A aucun moment je n'ai pensé à cette complication ; Sans votre aide, je doute que je l'aurais réparé.
Merci beaucoup pour votre aide et votre sagacité, ami Pascal
Comme on dit en Espagne : "Has dado en el clavo"
C'était exactement le problème:
Le chiffre de variation de la durée du jour est obtenu à partir du logiciel "WeatherDisplay" via le fichier "testtags.php".
Pour une raison inconnue, ledit logiciel (que je mets habituellement à jour) avait perdu les données de latitude et de longitude de ma position.
Dès que j'ai réussi à mettre à jour ces valeurs, la durée du jour (je pense) est correcte.
http://kocher.es/weatherdisplay/duracion_dia_modif.php
A aucun moment je n'ai pensé à cette complication ; Sans votre aide, je doute que je l'aurais réparé.
Merci beaucoup pour votre aide et votre sagacité, ami Pascal
Davis Vantage Pro2 +, Windows 10, Windows 7 (64), Graphweather 3.0.15, Weatherlink 6.0.3, template Pierre-André, template Jachym