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

Access Discussion :

DateDiff : en mois, décimal


Sujet :

Access

  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 629
    Par défaut DateDiff : en mois, décimal
    Bonjour,

    Je voudrais calculer une différence en mois entre 2 dates. J'utilise la fonction DateDiff. En paramètre, je précise que je veux des mois, mais comment faire pour ne pas avoir un chiffre rond ? Par exemple, je ne veux pas que ça m'affiche juste 2 mais plus précisément 2.1 ou 2.5 mois de différence entre les 2 dates.

    Merci

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 81
    Par défaut
    Bonjour,

    Si un résultat "approximatif" te suffit tu peux passer par les jours en paramètre, et diviser le résultat par 30.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim date1 As Date: date1 = "01/02/2006"
    Dim date2 As Date: date2 = "15/04/2006"
     
    Debug.Print Format((DateDiff("d", date1, date2) / 30), "0.00")
    Dans cette exemple, tu obtiendrais 2,43.

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 629
    Par défaut
    Merci pr ta réponse. Un résultat approximatif me suffit amplement. Mais je viens de tester et ça me met #error#.

    C'est directement ds ma requete SQL. Dans le code suivant, ça fonctionne mais la différence peut aller à plusieurs centaines de jours, dc c'est pas génial de faire le calcul de tete pr l'avoir en mois. Si je mets "m" à la place de "d", ça me le mets bien en mois, mais que des chiffres ronds.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     SELECT [Table].[date_1], [Table].[date_2], DateDiff("d",[date_1],[date_2])
      FROM Table;
    J'ai donc laissé en jours et divisé par 30. ça ne me met pas d'erreur de syntaxe, mais ça ne fait pas le calcul: dans le champ de la différence, j'ai #error#. Si je rajoute des parenthèses, ça me met une erreur de syntaxe.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     SELECT [Table].[date_1], [Table].[date_2], DateDiff("d",[date_1],[date_2]/30)
     FROM Table;

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 81
    Par défaut
    Chez moi ça fonctionne avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT dates.date1, dates.date2, (DateDiff("d",[date1],[date2])/30) AS Ecart
    FROM dates;
    La partie "/30" doit être effectuée sur le résultat du DateDiff et non à l'intérieur.

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    tant qu'à faire d'adopter une telle méthode autant diviser par 30.41=365/12=un mois moyen

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 81
    Par défaut
    Tant qu'à faire autant prendre le nombre de jours réel dans une année alors : 365,242199 / 12 mois = 30,43 (arrondi en dessous)

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    parfaitement judicieux

  8. #8
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 629
    Par défaut
    ah oui, merci bcp à tous les 2 et vraiment dsl car effectivement, j'avais pas mis la parenthese au bon endroit.

    a+

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 29/01/2024, 15h32
  2. [AC-2010] DateDiff en année, mois et jours
    Par macakou99 dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 04/11/2015, 15h33
  3. [AC-2010] DateDiff : compteur de mois étrange ?
    Par [ZiP] dans le forum VBA Access
    Réponses: 2
    Dernier message: 10/03/2014, 17h38
  4. Euro ? laisse moi gérer mes décimales
    Par Fanows dans le forum IHM
    Réponses: 2
    Dernier message: 27/05/2008, 12h25
  5. Réponses: 1
    Dernier message: 06/03/2003, 11h57

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