Dans ma base de données, les heures sont stockées en tant que "datetimes" (je ne sais pas si c'est le problème ou non - j'ai essayé à la fois datetime et timestamp). La structure ressemble à:Problème avec mysql SUM de plusieurs dates
ID | START_DATE | END_DATE
1 | 2011-10-10 08:15:00 | 2011-10-10 12:00:00
2 | 2011-10-11 09:00:00 | 2011-10-11 14:30:00
3 | 2011-10-12 08:45:00 | 2011-10-12 10:15:00
J'essaie d'obtenir la somme des secondes totales entre toutes les heures de début et de fin. Voici ce que j'ai:
$times = mysql_query("SELECT SUM(TIMEDIFF(end_date, start_date))
AS timesum FROM schedules");
$timetotal = mysql_fetch_assoc($times);
echo $timetotal['timesum'];
Maintenant, la somme devrait être 38700, mais quand je lance la requête ci-dessus, il retourne 100500. Quel est le problème avec la requête?
'100500' est le total d'ajouter tous les enregistrements d'agenda ainsi: http: // www. sqlize.com/91Ypqt7Ylf. En outre, les valeurs de chaque programme sont respectivement "34500", "53000" et "13000". D'où obtenez-vous le '38700'? http://www.sqlize.com/5IlL9a9cOa – mellamokb
Je l'ai juste répercuté sur l'écran et la valeur est correcte. sch_id est un autre champ dans la table, j'essayais juste de le garder simple pour ce post. – Oseer
Oh, je l'ai eu en quelques secondes. La réponse de ManseUK ci-dessous a résolu le problème. Je vous remercie. – Oseer