IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

requete mysql avec timestamp


Sujet :

Python

  1. #1
    Candidat au Club
    Inscrit en
    Février 2012
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 4
    Points : 3
    Points
    3
    Par défaut requete mysql avec timestamp
    Bonjour,

    Je voudrais faire une requete mysql en python quotidienne
    pour avoir les champs
    itemid, clock, value sur la journée de la veille
    Le problème est que le champ clock est en format timestamp
    j'ai donc utilisé FROM_UNIXTIME
    la requête fonctionne tant que je ne précise pas d'intervalles de temps.
    Dès que j'ajoute la chaine en bleu ça ne marche plus !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #!/usr/bin/env python
    import os
    import time
    
    os.system("mysql -e 'SELECT itemid, FROM_UNIXTIME(clock), value FROM history_uint  WHERE itemid=31552 and (from_unixtime(clock) between '2011-11-15 17:51:59' AND '2011-11-15 18:00:00') order by clock limit 10;' -N --password...

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 281
    Points : 36 768
    Points
    36 768
    Par défaut
    Salut,

    Il y a deux questions MySQL:
    • comment faire un SELECT avec un BETWEEN:
      SELECT * FROM history_uint WHERE clock BETWEEN '2003-03-15' AND '2003-03-18' ;
    • le champ clock est en format timestamp => on veut convertir '2003-03-15' en unix timestamp:
      SELECT * FROM history_uint WHERE clock BETWEEN UNIX_TIMESTAMP('2011-11-15 17:51:59') AND UNIX_TIMESTAMP('2011-11-15 18:00:00');

    qui traite de comment "construire" la requête SQL qui va bien...

    Si vous exécutiez la requête SQL dans un script BASH, vous ne seriez peut être pas allé dans le forum BASH pour trouver de l'aide, non?

    Une vraie question Python serait comment se débarraser de l'appel à os.system puisqu'il existe une API DBAPI et des drivers MySQL qui permettent non seulement de l'éviter mais en plus de récupérer les enregistrements récupérés pour les filtrer, tester s'il n'y a pas d'erreur dedans, les formatter...

    bon courage,
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Candidat au Club
    Inscrit en
    Février 2012
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Merci pour la réponse rapide ! et désolé si je n'ai pas posté au bon endroit
    En fait le premier script avait été élaboré en python et donc je voulais continuer avec du "python"


    Je reformule ma question (j'ai pas été clair) :
    Les 2 requêtes sql fonctionnent mais c'est l'intégration dans le script qui pose souci

    WHERE clock BETWEEN UNIX_TIMESTAMP('2011-11-15 17:51:59') AND UNIX_TIMESTAMP('2011-11-15 18:00:00');
    ou
    WHERE (from_unixtime(clock) between '2011-11-15 17:51:59' AND '2011-11-15 18:00:00')

    Mon soucis est donc de pouvoir exécuter cette requête dans un script (en python ou autre...)
    plus précisément sur la journée complète en J-1.

    PS: je vais poster dans Linux...

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 281
    Points : 36 768
    Points
    36 768
    Par défaut
    Salut,

    Les 2 requêtes sql fonctionnent
    Est ce que cela signifie que sous bash ou dans un script bash, l'entrée de la commande:
    mysql -e 'SELECT itemid, FROM_UNIXTIME(clock), value FROM history_uint WHERE itemid=31552 and (from_unixtime(clock) between '2011-11-15 17:51:59' AND '2011-11-15 18:00:00') order by clock limit 10;' -N --password..
    fonctionne alors que cut&paste de la chaîne de caractère correspondante pour la donner en paramètre d'os.system "plante"?

    tant que vous n'êtes pas clair sur ce qui fonctionne ou pas, impossible de savoir si c'est une question MySQL, Python, Linux...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. syntaxe requete mysql avec des variables
    Par harlock59 dans le forum Requêtes
    Réponses: 2
    Dernier message: 29/09/2006, 17h53
  2. pb requete mysql avec un WHERE NOT IN
    Par megapacman dans le forum Requêtes
    Réponses: 9
    Dernier message: 27/07/2006, 10h05
  3. Requete MySQL avec un Rand sur une table
    Par tom06440 dans le forum Requêtes
    Réponses: 2
    Dernier message: 05/01/2006, 17h37
  4. Afficher une requete MYSQL avec jointure
    Par Higestromm dans le forum Requêtes
    Réponses: 8
    Dernier message: 18/12/2005, 15h52
  5. Probleme requete Mysql avec WHERE
    Par Dom_the_quaker dans le forum Requêtes
    Réponses: 3
    Dernier message: 24/10/2005, 16h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo