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

PHP & Base de données Discussion :

Problème Somme de DATETIME()


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 164
    Par défaut Problème Somme de DATETIME()
    Bonjour,

    Je possède deux tables, ces 2 tables sont reliées par une jointure, la requete que je souhaite effectuer est la suivante:

    Bernard datetime (table1)-datetime (table2) 00:10:22
    Bernard datetime (table1)-datetime (table2) 00:14:12

    Ce qui donnerais en résultat:

    Bernard datetime (table1)-datetime (table2) 00:24:32

    Mon problème est au niveau du format, la requete ci-dessous me donne un résultat du genre 67,823 et je n'arrive pas à obtenir le format 00:00:00


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $sql = SELECT c.co_jour, COUNT( c.co_order ) AS qte,   c.co_preparateur, 
    FORMAT((SUM(TIMEDIFF (r.re_date, c.co_date))),'hh:nn:ss') as diff
    FROM commande AS c 
    LEFT JOIN retour AS r ON c.co_cle = r.re_cle 
    GROUP BY c.co_jour, c.co_preparateur

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    FORMAT ? Ce ne serait pas plutôt une fonction comme TIME_FORMAT qui devrait être utilisée ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 164
    Par défaut
    Bonjour,

    J'ai également essayé avec time_fromat mais sans succès le résultat n'est pas bon.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT c.co_jour, COUNT( c.co_order ) AS qte,   c.co_preparateur,c.co_date,r.re_date, TIME_FORMAT((SUM(TIMEDIFF (r.re_date, c.co_date))),'%h:%m:%s') as diff
    FROM commande AS c 
    LEFT JOIN retour AS r ON c.co_cle = r.re_cle 
    GROUP BY c.co_jour, c.co_preparateur

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    "Le format n'est pas bon" : c'est à dire ?

    Reportez-vous à la fonction date_format sur le lien ci-dessus où sont détaillés les formateurs : %h, c'est l'heure au format 1..12 et %m c'est le mois, non les minutes (%i).

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 164
    Par défaut
    J'ai modifié le format, j'essaye de modifier la construction de ma requete mais rien à faire mon résultat obtenu à maintenant le bon format (00:00:00) mais le résultat n'est pas le bon.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT c.co_jour, COUNT( c.co_order ) AS qte,   c.co_preparateur,c.co_date,r.re_date, TIME_FORMAT((SUM(TIMEDIFF (r.re_date, c.co_date))),'%H:%i:%s') as diff
    FROM commande AS c 
    LEFT JOIN retour AS r ON c.co_cle = r.re_cle 
    GROUP BY c.co_jour, c.co_preparateur

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Est-ce que c'est mieux avec ça ? (j'espère ne pas m'être planté en adaptant)
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT c.co_jour, COUNT(c.co_order) AS qte, c.co_preparateur, SEC_TO_TIME(SUM(TIME_TO_SEC(TIMEDIFF(r.re_date, c.co_date)))) as diff
        FROM commande AS c 
        LEFT JOIN retour AS r ON c.co_cle = r.re_cle 
        GROUP BY c.co_jour, c.co_preparateur

  7. #7
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 164
    Par défaut
    En regardant à droite à gauche j'ai trouvez cette métode du 'SEC_TO_TIME', la tienne est bien codée puisqu'elle ne génère pas d'érreur et affcihe un résultat mais celui-ci est une fois encore pas cohérent, c'est pourquoi je me pose la question sur la requete , peut etre l'ais-je mal construite.. Les temps qui apparaissent sont trop élevés.

Discussions similaires

  1. problème somme cumulative
    Par marion2003 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 06/12/2007, 14h41
  2. problème avec wx.DateTime
    Par Zavonen dans le forum wxPython
    Réponses: 2
    Dernier message: 17/09/2007, 12h35
  3. Problème somme dynamique
    Par mihaestii dans le forum Langage SQL
    Réponses: 6
    Dernier message: 19/08/2007, 17h19
  4. Problème avec convert datetime
    Par sane79 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 02/07/2007, 10h43
  5. Problème somme 2 valeurs ..
    Par andres007 dans le forum Applets
    Réponses: 9
    Dernier message: 26/06/2007, 19h20

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