Différence entre 2 champs TIME

Signaler
Messages postés
75
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
31 mars 2006
-
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
-
Salut tt le monde, j'ai une BD contenat plusieurs champs, dont un pour l'heure de type TIME, je voudrais pour un ensemble d'enregistrements données faire la différence entre l'heure maximale et l'heure minimale; autrement dit; si mon champ TIME s'apelle heure; et que j'ai fait une sélection de MAX(heure) et MIN(heure); comment je pourrais dans la même requête mysql avoir la différence entre MIN(heure) MAX(heure) dans un format hh:mm:ss bien entendu;

Merci !

12 réponses

Messages postés
118
Date d'inscription
dimanche 28 septembre 2003
Statut
Membre
Dernière intervention
19 juin 2007

salut !

pourrez tu m'éclairer un peu plus parce que là c'est flou.

Donne nous un exemple qu'on puisse t'aider.

a++
Messages postés
75
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
31 mars 2006

SELECT max(heure), min(heure) FROM matable


WHERE `ip`='127.0.0.1' ORDER BY date

Cette requete me donne une suite de résultats avec une heure maximale et une heure minimale pour chaque enregistrement sélectionnée,

Je voudrais avoir la différence de ces heures qui sont du type TIME dans le meme format càd sous la forme hh:mm:ss

Merci
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
Salut,

tout simplement


SELECT max(heure)-min(heure) FROM matable

WHERE `ip`='127.0.0.1' ORDER BY date



In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
Messages postés
75
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
31 mars 2006

Oh non, c'est pas aussi simple que ça, cette requête ne donne que la différence entre les heures et ne prend pas en considération les minutes et secondes;

Plus clairement; après son exécution je reçoit une suite de 1 et de 0 tandis que je veux des heures au format hh:mm:ss

A vous d'essayer et de voir le résultat;

Merci %
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
Salut,



SELECT <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">



<meta name="Generator" content="Kate, the KDE Advanced Text Editor">


DATE_FORMAT( (max(heure)-min(heure) "%H/%i/%s") FROM matable

WHERE `ip`='127.0.0.1' ORDER BY date



In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
Messages postés
75
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
31 mars 2006

Salut,

Etes-vous absolument sure de la syntaxe ??
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
Salut,

non, mais essai et si ça renvoi une erreur, donne nous l'erreur renvoyée...

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
Messages postés
75
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
31 mars 2006

Voil¨¤ l'erreur :

#1064 - Erreur de syntaxe prÙrde '"%H/%i/%s") FROM matable WHERE `ip`='127.0.0.1' ORDER BY date LIM' ࠬa ligne 1
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
Salut,

il manque une ,






SELECT


DATE_FORMAT( (max(heure)-min(heure), "%H/%i/%s") FROM matable


WHERE `ip`='127.0.0.1' ORDER BY date

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
Messages postés
75
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
31 mars 2006

Salut,

Jete répète encore la question: êtes-vous absolument sure de la syntaxe ?? Tu l'as déjà essayée ou travaillé avec ?

Je croi que c'est pas possible de faire celà directement dans mysql;

à vous de prouver le contraire ;-)
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
Encore heureux que c'est possible...

DATE_FORMAT (date, format)

date dans ce cas la peut être n'importe quel type de date, que ce soit fait via une opération ou une date pré-prête.

Ici, dans l'exemple, date = max(heure) - min(heure).

format représente le format de la date que tu souhaites récupérer. Ici sous la forme
%H/%i/%s soit heure/minute/seconde.

Donc la syntaxe est bonne... sauf que :

SELECT

DATE_FORMAT( (max(heure)-min(heure), "%H/%i/%s") FROM matable
WHERE `ip`='127.0.0.1' ORDER BY date

Ca c'est pas bon, parce que y'a une ( en trop :)
"SELECT DATE_FORMAT ( max(heure)-min(heure), '%H/%i/%s) FROM table WHERE ip = '127.0.0.1' ORDER BY date";

http://dev.mysql.com/doc/refman/5.0/fr/date-and-time-functions.html
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
Salut,

ah ouais...

Bon, j'étais sur que ça marchait, mais pour les erreurs de synthaxes,
vous pouvez toujours les résoudres seuls et facilement !!! ou au moins,
envoyez nous les messages d'erreur !!!




In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)