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

Requêtes et SQL. Discussion :

calculer la différence entre deux heures


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 104
    Points : 56
    Points
    56
    Par défaut calculer la différence entre deux heures
    bonjour à tous en cette matinée

    Je voulais calculer la différence entre deux champs horaires, format 00:00
    en effet je dois pour un évènement renseigner son "Horaires de début" et son "Horaires de fin" c'est deux champs se trouvent dans une tbl [Dispositifs Prévisionnels de Secours]

    Pour afficher les éléments dont j'ai besoin dans un formulaire, je passe par une requête dans laquelle je voulais intégrer mon code SGL pour qu"il me calcule le nombre d'heure de mon évènement sachant que parfois l'horaire de fin peut dépasser minuit (soit 00:00)

    Voici mon code mais il ne fonctionne pas cela m'indique qu'il ya une erreur sur la clause FROM qu'en pensez vous??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT [Horaires début],[Horaire fin],
     IIF(Hour([Horaire fin])<Hour([Horaires début]),24+Hour([Horaire fin])-Hour([Horaire début]),Hour([Horaire fin])-Hour([Horaires début])) As [Durée en heure]
     FROM Dispositifs Prévisionnels de Secours;
    merci d'avance pour votre aide

  2. #2
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonjour,

    Tu peux déjà mettre tout cela entre crochets car les espaces Access n'aime pas trop...

    Penses à mettre des underscores lors du nommage des tables, colonnes...

    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur VBA Access
    Inscrit en
    Avril 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VBA Access

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 109
    Points : 1 535
    Points
    1 535
    Par défaut
    Bonjour JenniferIUP,
    essaie en plaçant le nom de la table entre crochet comme pour les noms des champs.

  4. #4
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Bon, je ne vais pas te redire de faire attention aux crochets pour les noms contenant des espaces, il y en a déjà deux qui l'ont fait () par contre, es-tu sûre qu'il est impossible que tu aies un horaire de fin supérieur à l'horaire de début, mais à une date différente... autrement dit
    Ne peut-il pas y avoir de durée supérieures à 24heures ?

  5. #5
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    bonjour,

    peut être un début de réponse
    moi personellement, je procederait ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT [Horaire début], [Horaire fin],DateDiff("H",[Horaire début],[Horaire fin])
    FROM [Dispositifs Prévisionnels de Secours]
    Cette requete renverra la différence en terme d'heures.

    Mayekeul
    Alleï Bonjour chez vous!

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 104
    Points : 56
    Points
    56
    Par défaut
    bonjour,

    dans un premier temps je voudrais vous remercier pour toutes vos réponses!!

    Pour les noms des espaces je n'y suis pour rien c'est l'ancien stagiaire qui s'es laché sur les espaces et la BD es tellement grande que se serait super long de tout arranger!! lol

    Sinon je vous explique pour les horaires!
    (en faite je suis dans une association de secouristes qui réalise des postes de secours sur de grands évènements culturels comme des spectacles, concerts.. mais aussi des évènements sportif, match de foot (de grenoble lol), de hockey de rugby....)

    donc un évènement peut durer parfois plusieurs jours comme lorsqu'ils travaillent sur le marathon de l'alpes d'huez.

    mais un évènement peut aussi commencer le lundi 02 février à 18h et finir le mardi 03 février à 02heure du matin

    donc voilà comment faire!!!

    je vous remercie encore par avance pour vos conseils!

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour

    As-tu essayé en utilisant la fonction DateDiff de ne pas mettre que l'heure, mais la date aussi.

    Par exemple le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DateDiff("h","25/12/2008  23:00","26/12/2008 01:00")
    te donne 2, car il y a deux heures entre 23:00 et 01:00

    Philippe

  8. #8
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    oui, ou aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ([dateFin]-[DateDebut])*24
    Et, dans tes deux champs DateDebut et DateFin, il te faut ET les dates ET les heures.

    Voilà

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 104
    Points : 56
    Points
    56
    Par défaut
    Suite aux deux derniers messages j'ai deux questions
    premièrement: pour ce qui est datediff je met cela dans ma requêt en créant une expression?

    deuxièmement: comment dans un même champs d'une table je peux mettre la date et l'heure??

    merci en tous cs pour tousces conseils c'est tres gentil

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 104
    Points : 56
    Points
    56
    Par défaut
    mais si je me rapelles de mes cours d'access
    datediff se construit comme suit:
    datediff("ee";[date_début];[date_fin];2;2) si je veux calculer le nombre de semaine entre deux dates

    mais je vois pas comment ajuster cela pour avoir date et heure

    merci beaucoup

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 104
    Points : 56
    Points
    56
    Par défaut
    en réfléchissant un peu j'ai trouvé
    j'ai d'abord concaténé (pardon pour l'orthographe) mes champs date_debut et heure_debut d'un coté et date_fin et heure_fin de l'autre puis j'ai appliqué une datediff comme vous me l'aviez indiqué plus haut et cela marche complètement:

    au cas ou voila l'expression
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    datediif("h";[date_debut] & " " & [heure_debut];[date_fin] & " " & [heure_fin])
    encore merci pour tous

  12. #12
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Citation Envoyé par jenniferIUP Voir le message
    deuxièmement: comment dans un même champs d'une table je peux mettre la date et l'heure??
    Ben... le type s'appelle Date/Heure !
    Il est prévu pour cela !
    Un peu de lecture : http://mhubiche.developpez.com/vba/f...ions/datetime/

  13. #13
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2012
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Problème quasi semblable
    Bonjour,

    J'ai un peu le même problème la différence c'est que je dois afficher la différence d'heure et de minute

    Exemple:

    Arrivé du bénéficiaire: 13h30
    Départ salle d'opération: 14h32

    Temps (total minutes): 1h02

    J'ai essayé DiffDate mais je ne suis pas capable d'afficher heure et minute, le mieux que j'ai trouvé me donnait la réponse 1h00, il ''arrondissait'' à l'heure près.

    Ma reconaissance totale à celui qui pourra m'aider

    Merci

  14. #14
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    bonjour,

    si ce n'est que des heures, faites simplement

    Heure1-Heure2=différence en heure
    Alleï Bonjour chez vous!

  15. #15
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 265
    Points : 19 434
    Points
    19 434
    Billets dans le blog
    63
    Par défaut
    Bonjour,

    S'il y a à gérer les minutes alors il faut en plus utiliser la fonction CDate à la fin:

    Exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ? CDate((#12/12/2012 15:45#)-(#12/12/2012 14:35#))
    Renvoie:

    01:10:00

    Une autre façon valable pour l'affichage avec la fonction Format:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ? Format((#12/12/2012 15:45#)-(#12/12/2012 14:35#),"hh:nn")
    Renvoie:

    01:10

    A+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. calcul différence entre deux heures dans une requete
    Par cornet04 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 18/03/2015, 16h37
  2. Réponses: 7
    Dernier message: 29/11/2010, 12h26
  3. Calcul différence entre deux heures
    Par flashnet dans le forum Langage
    Réponses: 4
    Dernier message: 21/06/2010, 20h39
  4. Réponses: 7
    Dernier message: 05/07/2006, 16h29
  5. [Dates] Calcul d'une différence entre deux heures
    Par loreleï85 dans le forum Langage
    Réponses: 12
    Dernier message: 28/06/2006, 11h43

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