rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

[Access] calculer des temps en seconde

Posté par chabRRR, le mercredi 14 mars 2007 à 11:20:12
Bonjour,

J'ai un problème avec access. J'ai une table LOGXITI qui contient des champs Date et Heure (au foramt 01010001 pour la date et 01:01:01 pour l'heure).

SESSION (Idsession, Nsession, datesession, codecat)
LOXITI(Nlog, ID, Date, Heure, Description)
Avec les relations suivantes
SESSION.Idession=LOGXITI.Idlog
Copie d'écran de la table SESSION
http://cjoint.com/?doliesaz6F

Je souhaite calculé la différence entre l'heure de fin de session et l'heure de début de session afin de connaitre le temps écoulé lors de chaque session.
Je dois pouvoir récupérer le premier tuple de la table LOGXITI et le dernier tuple, pour une chaque session (cf pj)

Comment je peux calculer cette différence entre les tuples ? Dois je traiter les heures en base 60 ? Est ce possible de transformer une heure en numérique (00:05:10 devient 310 puis on peux faire les soustraction facilement ?) ? Comment gérer les heures nouvelles entre 01:59:59 et 02:00:01 et pire entre 23:59:59 et 00:00:01 du jour suivant ?

Je ne sais pas trop comment faire ?

Merci d'avance


NB : mes champs heure et date sont definis en date/heure et numérique.
Configuration: Windows 2000
Firefox 2.0.0.2
Répondre à chabRRR  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
blux, le mercredi 14 mars 2007 à 12:56:15
Salut,

la fonction datediff fait ça très bien :

a = datediff("s",datedeb,datefin)

Il faut cependant concaténer ta date et ton heure puis la transfomer en format date...

datedeb = cdate(date & " " & heurelog)...
A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
Répondre à blux

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
chabRRR, le mercredi 14 mars 2007 à 14:21:58
Bon, ça parait simple comme tu me le présente.

mais j'ai pluisieurs problème :

1.tu as du remarqué dans ma table que la date est au format AAAAMMJJ. Je n'arrive pas a faire un CDate la dessus.

2. je ne vois pas où utiliser cette fonction ? dans une requete ?
Répondre à chabRRR

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
blux, le mercredi 14 mars 2007 à 14:42:23
1 - Le format n'est qu'un format d'affichage...

Tu peux donc le remettre en French avec format...

Un truc comme ça :

a = datediff("s",cdate(format(datedeb,"jj/mm/aa&q­uot;) & " " & heurelog)),cdate(format(datefin,"jj/mm/aa") & " " & heurelog)))

2 - Où tu veux !

SELECT datediff("s",cdate(format(datedeb,"jj/mm/aa&q­uot;) & " " & heurelog)),cdate(format(datefin,"jj/mm/aa") & " " & heurelog))) FROM ...

J'ai pas vériifé les parenthèses...

A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
Répondre à blux

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
chabRRR, le mercredi 14 mars 2007 à 16:11:01
j'arrive a rien, j'arrive toujours pas a faire ni le cdate, ni le diffdate

Commençons par le Cdate
je comprends pas pourquoi ça ne marche pas
j'ai mis dans une requete un expr tel quel
Date1: CDate(LOGXITI.[Date] & " " & LOGXITI.[Heurelog])


en sql
SELECT LOGXITI.Date, LOGXITI.Nlog, LOGXITI.Heurelog, CDate(LOGXITI.[Date] & " " & LOGXITI.[Heurelog]) AS Date1
FROM LOGXITI;

jai le doit a un jolie #Erreur dans le resultat de requete
qu'est ce que tu en penses ?
Répondre à chabRRR

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
blux, le mercredi 14 mars 2007 à 16:18:22
Ben voui, mais date est une donnée 'date' ou 'chaine'...

Si c'est date, ça devrait marcher, si c'est une chaine, il faut reformater (mid, left,right) pour mettre des / afin de retransformer en format date avec cdate...
A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
Répondre à blux

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
chabRRR, le mercredi 14 mars 2007 à 16:24:16
c'est au format 'numérique' enfin 'donnée mais pas date. je peu pa le mettre en date, il me dit probleme de conversion de format

j'ai essayé de remmetre la date au format jj/mm/aaaa pour ensuite pouvoir cchanger de format, j'ai réussi a séparer aaaa de mm et de jj dans 3 champs d'une requete mais je sais pas comment recomposer au format jj/mm/aaaa ?
j'ai tenté un truc comme Date
Répondre à chabRRR

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
chabRRR, le mercredi 14 mars 2007 à 16:36:49
ça y est, j'ai réussi le coup de mettre la date au format jj/mm/aaaa mais impossible de faire une requete de mise a jour de ma table pour remplacer la date aaaa/mm/jj

maintenant, j'essaye de mettre cette nouvelle date au format jj/mm/aaaa dans table pour remplacer l'autre
Répondre à chabRRR

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
chabRRR, le vendredi 16 mars 2007 à 11:08:57
J'ai toujours pas réussi, mais je me rapproche ; j'ai réussi a mettre la date au format voulu 'date/heure'
J'ai le requete sql suivante
SELECT DateDiff("s",CDate(Format(SESSION.Date,""­;"jj""/mm/""aaaa""")­ & " " & LOGXITI.heurelog),CDate(Format(SESSION.Date,""&quo­t;jj""/mm/""aaaa""") & " " & LOGXITI.heurelog)) AS DeltaT
FROM [SESSION], LOGXITI;

Mes champs heure et date sont au bon format mais il proviennent de différentes tables. Le resultat de la requete est #erreur. Pouvez vous m'aider ? merci
Répondre à chabRRR

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
chabRRR, le vendredi 16 mars 2007 à 11:21:13
J'ai essayé en prenant les champs date et ehurelog dans un meme table LOGXITI mais ça marche pas non plus ...
Répondre à chabRRR

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
chabRRR, le vendredi 16 mars 2007 à 11:44:37
la requete marche, merci
premiere mission réussi

maintenant, je ne sais pas comment je vais pouvoir déterminer mes datedeb et datefin. Le resultat de la requete est le suivant:
http://cjoint.com/?dqlSL3bRLv

en sql
SELECT SESSION.Nsession, CDate(SESSION.[Date] & " " & [heurelog]) AS datedeb, CDate(SESSION.[Date] & " " & [heurelog]) AS datefin, LOGXITI.Nlog
FROM [SESSION] INNER JOIN LOGXITI ON SESSION.IDsession = LOGXITI.IDlog
GROUP BY SESSION.Nsession, CDate(SESSION.[Date] & " " & [heurelog]), CDate(SESSION.[Date] & " " & [heurelog]), LOGXITI.Nlog;

Je souhaite recuperer la premiere et derniere date pour une session. Autrement dit, je souhaite recuperer la datedeb (la premiere pour un Nsession) et la datefin (la derniere pour cette meme Nsession)

ex: pour la session Nsession=1, datedeb doit valoir la date du premier Nlog=769 et datefin du Nolg=771
Le nombre de Nlog par Nsession est variable
pour la session Nsession=18, datedeb doit valoir la date du premier Nlog=820 et datefin du Nolg=823
Répondre à chabRRR

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
blux, le vendredi 16 mars 2007 à 13:24:08
Tu fais une requête avec le prédicat TOP 1 qui te renvoie la première donnée... Il suffit de trier un coup en ascendant et un autre en descendant...

SELECT TOP 1 session FROM table WHERE NSESSION = 1 ORDER BY session... ou un truc du genre A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
Répondre à blux

12


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
chabRRR, le vendredi 16 mars 2007 à 14:44:44
Mission complete

merci, je vérifie que j'ai plus aucune question et je marque le formu en problème résolu

Merci bcp
Répondre à chabRRR

13


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
bebel, le mercredi 10 octobre 2007 à 18:04:12
Bonjour, j'ai un problème à résoudre,qui ai le suivent!
une classe de cm1 regarde un film donc le début et à 15h35 et la fin à 16h20
quel est la duré de se film!
pourriez-vous m'aider merci.
Répondre à bebel

14


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 blux, le mercredi 10 octobre 2007 à 19:11:12
C'est un problème de cm1, non ?
A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
Répondre à blux
Logiciels pertinents trouvés dans les téléchargements
Télécharger Ma Calculatrice  2.3Ma Calculatrice - Windows propose par défaut une calculatrice avec des fonctions dites scientifiques mais tout de même incomplètes. ...Catégorie: Calculatrice
Licence: Freeware/gratuit
Télécharger Empty Temp Folders 2.8.3Empty Temp Folders - Après seulement quelques jours d’utilisation le PC est déjà encombré par des fichiers temporaires, inutiles mais très...Catégorie: Nettoyage
Licence: Freeware/gratuit
Télécharger The Love Calculator   1.0The Love Calculator - L'amour est un grand mot, alors tous les moyens sont bons pour la trouver. Le nom de chacun peut en dire beaucoup sur la...Catégorie: Bureautique
Licence: Freeware/gratuit
Télécharger Aide-mémoire 2.3Aide-mémoire - Ce logiciel permet de coller des aides mémoires (post-it) sur votre bureau. Son but est simple, éviter de décorer votre...Catégorie: Organisation
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « [Access] calculer des temps en seconde »