Access Requete SQL pour un cumul de temps

Messages postés
13
Date d'inscription
mardi 30 octobre 2007
Statut
Membre
Dernière intervention
2 mars 2008
- - Dernière réponse : LIBRE_MAX
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
- 1 mars 2008 à 14:34
Bonjour quelqu'un pourrait m'aidé pour ma requete , je cherche a cumuler des durées mais dés que la durée dépasse 24H il ya un probléme
SELECT CDate(Sum(TempsPasse)) AS TempsTotal
FROM TempsPasse;
Afficher la suite 

10 réponses

Messages postés
83
Date d'inscription
jeudi 22 septembre 2005
Statut
Membre
Dernière intervention
14 décembre 2011
1
0
Merci
Bien que la question n'a semble t-il pas sa place dans un forum  PHP,
je tenterai d'y répondre, car le problème est générique.

Sans avoir plus de détail, je dirais que le problème vient de l'unité.
Quel est le type du champ ? DateTime ou Numérique ?
A quoi corrrespond 1 : un jour ou une minute ?

SI le champ est de type dateTime, (DateTime est différent de TimeStamp Unix : cfr strToDate() )
    4:00 coresspond en réalité a 1/24*4 soit environ 0,1666
    4:00 + 22:00 = 1/24*26,  soit  1 jour et Deux heures, donc le 2 janvier 1900 2:00

Solution : convertir un temps 4:00 en 240 minutes par exemple... : = [TEMPSPASSE] * 24 * 60.
Si besoin, l'inverse est possible pour traduire la somme en un nombre d'heures ou de jour,
...

Philippe
Commenter la réponse de MasterCent
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
0
Merci
Très exact MasterCent.
Mais convertir en seconde c' est mieux.

<hr />
... Y'en a même qui disent qu'ils l'ont vu voler.
<hr />
/PRE>
Commenter la réponse de LIBRE_MAX
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
0
Merci
Pourquoi ?
Parce que lors de l' opération inverse, si le nombre de minutes n' est pas rond, le reste de la division par 60 risque de poser problème. A moins d' y aller avec Partie Entière.
Je parle d' après ma propre expérience dans un prog de pointage ou il était question de capture de Time.(hh:mm:ss)

<hr />
... Y'en a même qui disent qu'ils l'ont vu voler.
<hr />
/PRE>
Commenter la réponse de LIBRE_MAX
Messages postés
13
Date d'inscription
mardi 30 octobre 2007
Statut
Membre
Dernière intervention
2 mars 2008
0
Merci
Re bonsoir je ne comprend pas comment utiliser cela dans ma requete "= [TEMPSPASSE] * 24 * 60" pourrait tu me donner plus d'aide je débute dans les requetes SQL
Commenter la réponse de Abouportant
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
0
Merci
Rebonsoir,
Avant d' attaquer l' e^pression de la requête, il faudra répondre
à la question de   MasterCent.A savoir à quoi correspond ton
champ TEMPPASSE.
De quel type il est et quel format il a.
Un exemple concret serait le bien venu.

A+

<hr />
... Y'en a même qui disent qu'ils l'ont vu voler.
<hr />
/PRE>
Commenter la réponse de LIBRE_MAX
Messages postés
13
Date d'inscription
mardi 30 octobre 2007
Statut
Membre
Dernière intervention
2 mars 2008
0
Merci
re il est de type DATE/HEURE
Commenter la réponse de Abouportant
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
0
Merci
Bonjour,
Trop court  mais bon !
Essaies ceci:
SELECT Sum((Hour(TempsPasse)*60)+Minute(TempsPasse))) AS TempsTotal
FROM TempsPasse;


le champ calculé  TempsTotal sera de type numérique.
et représentera le total des minutess.
A toi d' en extraire le nombre de jour, le nombre d' heure
et ce qui en reste de minute.







<hr />

... Y'en a même qui disent qu'ils l'ont vu voler.



<hr />





/PRE>
Commenter la réponse de LIBRE_MAX
Messages postés
13
Date d'inscription
mardi 30 octobre 2007
Statut
Membre
Dernière intervention
2 mars 2008
0
Merci
merci LIBRE_MAX mais serait il possible davoir le résultat de ma requete directement en heure?
Commenter la réponse de Abouportant
Messages postés
13
Date d'inscription
mardi 30 octobre 2007
Statut
Membre
Dernière intervention
2 mars 2008
0
Merci
Re je voulais dire plutot en format Heure par exemple 34:50 a la place de 34,50
Commenter la réponse de Abouportant
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
0
Merci
beh justement !
Tu ne peux pas avoir directement 34:50 parceque l' heure 34 n' existe pas.
Et ça sera pareil pour les minutes si tu as 34:83., par exemple.
Tu dois donc interprèter le résultat comme étant :34 heures et 83 minutes.Et non pas l' heure 34:83.
Et c' est ensuite que tu pourras traduire en 1 jour 11 heures
et 23 minutes.Si tu vois ce que je veux dire.

<hr />
... Y'en a même qui disent qu'ils l'ont vu voler.
<hr />
/PRE>
Commenter la réponse de LIBRE_MAX