Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1427 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  MYSQL: vrai timestamp?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

MYSQL: vrai timestamp?

n°2419284
Lermite
Posté le 13-06-2022 à 16:33:47  profilanswer
 

J'ai besoin d'insérer dans une base MySQL via une requête le timestamp actuel, mais sous la forme d'un vrai timestamp à savoir le nombre de secondes écoulées depuis le 1er janvier 1970.
 
Mon problème est que pour MySQL, un timestamp renvoyé notamment par CURRENT_TIMESTAMP() est la version littérale de la date et l'heure, par exemple 20220613161021 qui se lit 2022_06_13 16:10:21  :heink:
Alors que j'ai besoin à la place de 16551294211  [:islord]  
 
Est-ce possible relativement simplement, en l'occurrence plus simplement que modifier mes codes pour les adapter au format littéral de la date et l'heure et convertir toutes les valeurs déjà stockées dans ce format à la c..?
 :??:  

mood
Publicité
Posté le 13-06-2022 à 16:33:47  profilanswer
 

n°2419288
pluj
Posté le 13-06-2022 à 16:58:51  profilanswer
 

Lu,
 
il existe la fonction UNIX_TIMESTAMP.
 
Quel besoin ? Tu travailles directement en SQL ou via un langage quelconque ?

n°2419292
Lermite
Posté le 13-06-2022 à 17:12:28  profilanswer
 

pluj a écrit :

Lu,
 
il existe la fonction UNIX_TIMESTAMP.

Excellent, merci. C'est pile poil ce qu'il me fallait.  :jap:  
 

pluj a écrit :

Quel besoin ? Tu travailles directement en SQL ou via un langage quelconque ?


Mon compteur Linky à une led qui clignote à une fréquence qui dépend de la puissance active instantanée.
J'ai fixé un phototransistor juste devant. Il est connecté à un petit circuit qui adapte son signal pour un ESP-01S qui, lui, mesure l'intervalle entre les impulsions, en déduit la puissance active qu'il balance dans une table MYSQL constituée de seulement deux champs: la date/heure courante et la puissance active, sur un PC.
Ce PC héberge un serveur web contenant entre autres une page PHP qui représente la puissance consommée sous la forme d'un graphique.
 
Actuellement, l'ESP-01S transmet ses infos au PC via une requête HTTP. C'est la page PHP pointée qui se charge d'insérer la date/heure actuelle associée à la puissance transmise.
 
Ca fonctionne très bien mais j'aimerais shunter la requête HTTP, en faisant en sorte que l'ESP-01S insère directement ses mesures une requête SQL.
Comme il ne gère pas l'heure, qu'il ne connaît que le temps écoulé depuis sa mise en route ou sa dernière réinitialisation, je n'ai d'autre choix que de confier au serveur MySQL la génération du timestamp.
 
La description de ce bricolage: https://forum.hardware.fr/hfr/elect [...] tm#t369805

n°2419614
rufo
Pas me confondre avec Lycos!
Posté le 16-06-2022 à 08:20:23  profilanswer
 

Ben du coup, si c'est Mysql qui doit générer le timestamp, tu peux très bien prendre celui renvoyé par la fonction CURRENT_TIMESTAMP() que tu mets dans un champ de type datetime, non ?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2419616
Lermite
Posté le 16-06-2022 à 08:30:28  profilanswer
 

rufo a écrit :

Ben du coup, si c'est Mysql qui doit générer le timestamp, tu peux très bien prendre celui renvoyé par la fonction CURRENT_TIMESTAMP() que tu mets dans un champ de type datetime, non ?


Un champ de type datetime, je ne sais pas trop ce qu'il va me renvoyer à la lecture.
J'ai toujours stocké des timestamps Unix en base de donnée et je suis trop vieux pour changer d'habitude  [:panzemeyer]  :D  
 
Quoi qu'il en soit, j'ai dû renoncer à la gestion de la requête d'insertion par le ESP-01S.
La tentative de connexion au SGBD donnait systématiquement une exception que même EspExceptionDecoder-2.0.2 ne parvenait à décoder.
J'en ai déduit que son firmware ne permettait pas de gérer les connexions MySQL.
 
Ne voulant pas laisser ce montage hors ligne trop longtemps, je suis revenu à la bidouille crade de la requête HTTP qui a tout de même l'avantage de fonctionner parfaitement.
 
Par contre, je compte bien sur mon Arduino Mega 2560 Rev 3 pour gérer directement la MySQL. J'ai assez de l'ESP-01S pour harceler mon serveur web  [:tinostar]

n°2424238
Lermite
Posté le 13-08-2022 à 16:21:53  profilanswer
 

Je reviens à la charge suite à une prise de tête avec MySQL qui semble n'accepter aucune requête composée  :heink:  :fou:  
 
Le contexte: une table contenant mes données météo, à raison d'un enregistrement par minute.
 
Elle compte entre autres ces trois champs:
 
dh: un timestamp unix faisant office de clé primaire (dh: Date Heure)
windspeedm: la vitesse moyenne du vent sur la minute écoulée, qui provient de l'Arduino/station météo
windspeed: la vitesse moyenne du vent sur 5 minutes glissantes, que l'Arduino n'a pas la capacité de calculer.
 
Je dois donc calculer et mettre à jour après coup le champ windspeed.
Pour ce faire, un trigger semble l'idéal mais avant d'en arriver là, j'ai voulu tester la requête en question, pour découvrir qu'elle ne passe pas et je peine à comprendre pourquoi. Les requêtes composées seraient-elles proscrites par MySQL?
 
Voici ma requête pourtant simple, avec le message d'erreur qui m'a l'air à côté de la plaque  :pt1cable: :
https://zupimages.net/up/22/32/2cyy.png
 
Elle a probablement un bug tellement évident que je ne le vois pas  :sweat:  
Un regard neuf serait donc le bienvenu  [:islord]  

n°2424570
MaybeEijOr​Not
but someone at least
Posté le 19-08-2022 à 15:56:46  profilanswer
 

Pas expert en MySQL, mais d'après ce que je trouve :
- https://fr.wikibooks.org/wiki/MySQL/Alias
- https://www.mysqltutorial.org/mysql-alias/
 
L'alias déclaré ne peut être utilisé que dans une clause ORDER BY, GROUP BY et HAVING et non dans une clause WHERE.


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°2424571
Lermite
Posté le 19-08-2022 à 16:00:50  profilanswer
 

MaybeEijOrNot a écrit :

Pas expert en MySQL, mais d'après ce que je trouve :
- https://fr.wikibooks.org/wiki/MySQL/Alias
- https://www.mysqltutorial.org/mysql-alias/
 
L'alias déclaré ne peut être utilisé que dans une clause ORDER BY, GROUP BY et HAVING et non dans une clause WHERE.

:jap:  
Je devrais donc m'en sortir avec HAVING.
 
Je ne puis m'y recoller tout de suite cependant. Je suis en pleine tentative désespérée de débricker mon téléphone  :sweat:


Message édité par Lermite le 19-08-2022 à 16:01:05

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  MYSQL: vrai timestamp?

 

Sujets relatifs
Exercice html, php, mysql, javascriptExcel+PHP/Mysql
[Algorithme][Aide] Partons de vrai et bien.../...[Résolu] Pb de regexp avec Mysql
MySQL : forcer la position d'un résultat ?[MySQL] Order by sur caractères spéciaux
MySql indisponible ce matinSauvegarde de bases MySQL
[PHP/MySQL] PDO - bindValue ça bind pas[MySQL] MAJ d'une table avec trigger et conditions
Plus de sujets relatifs à : MYSQL: vrai timestamp?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR