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 :

calcul de différence entre 2 dates


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 81
    Points : 49
    Points
    49
    Par défaut calcul de différence entre 2 dates
    Bonjour,
    voila j'ai un petit probléme avec une différence de date

    je suis sur Access 2000
    ma requéte SQL dois m'afficher la liste des unités centrales de plus de 3 ans
    donc ma requéte est la suivante :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT [numeroUC]
    FROM uniteCentrale
    WHERE NOW()-dateMiseServiceUC>3;

    sauf que cela ne fonctionne pas il me met une erreur dans l'expression

    En fait par exemple si la date de mise en service est 15/02/2004, la requête doit m'afficher le numéro de l'unité centrale correspondantes (vu qu'elle aura plus de 3 ans)

    j'espére avoir été clair !!
    merci d'avance
    Bonne apres midi

  2. #2
    Membre habitué Avatar de IllusionStriker
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    129
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 129
    Points : 179
    Points
    179
    Par défaut
    Citation Envoyé par frack Voir le message
    Bonjour,
    voila j'ai un petit probléme avec une différence de date

    je suis sur Access 2000
    ma requéte SQL dois m'afficher la liste des unités centrales de plus de 3 ans
    donc ma requéte est la suivante :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT [numeroUC]
    FROM uniteCentrale
    WHERE NOW()-dateMiseServiceUC>3;

    sauf que cela ne fonctionne pas il me met une erreur dans l'expression

    En fait par exemple si la date de mise en service est 15/02/2004, la requête doit m'afficher le numéro de l'unité centrale correspondantes (vu qu'elle aura plus de 3 ans)

    j'espére avoir été clair !!
    merci d'avance
    Bonne apres midi
    je vien de me rendre compte d'une erreur que l'on fesait
    essaye ça il se trouve que c'est une virgule qui sépare pas un - ce qui expliquerai ton message d'erreur de toute a l'heure
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT [numeroUC]
    FROM uniteCentrale
    WHERE DateDiff(NOW(),(dateMiseServiceUC>3));

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 81
    Points : 49
    Points
    49
    Par défaut
    encore et toujours la meme erreur dexpression ...

  4. #4
    Membre averti Avatar de Shivaneth
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 349
    Points : 341
    Points
    341
    Par défaut
    Bonjour,
    essaye ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT [numeroUC]
    FROM uniteCentrale
    WHERE (YEAR(CURRENT_DATE()) - YEAR(dateMiseServiceUC) - (RIGHT(CURRENT_DATE(),5)<RIGHT(dateMiseServiceUC,5))) > 3

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 81
    Points : 49
    Points
    49
    Par défaut
    il me met :
    "fonction CURRENT_DATE non définie dans l'expression"

  6. #6
    Membre habitué Avatar de IllusionStriker
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    129
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 129
    Points : 179
    Points
    179
    Par défaut
    petite précision tu fait ta diférence entre le now et dateMiseEnService? et ce resultat doit etre superieur a 3 c'est ca?
    si c'est ca peut etre que ceci....
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT [numeroUC]
    FROM uniteCentrale
    WHERE DateDiff(NOW(),dateMiseServiceUC)>3;
    sinon plus d'idées...

  7. #7
    Membre averti Avatar de Shivaneth
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 349
    Points : 341
    Points
    341
    Par défaut
    Citation Envoyé par frack Voir le message
    il me met :
    "fonction CURRENT_DATE non définie dans l'expression"
    Essaye avec NOW() alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT [numeroUC]
    FROM uniteCentrale
    WHERE (YEAR(NOW()) - YEAR(dateMiseServiceUC) - (RIGHT(NOW(),5)<RIGHT(dateMiseServiceUC,5))) > 3

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 81
    Points : 49
    Points
    49
    Par défaut
    toujours pas ; toujours la meme erreur


  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 81
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par Shiva Skunk Voir le message
    Essaye avec NOW() alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT [numeroUC]
    FROM uniteCentrale
    WHERE (YEAR(NOW()) - YEAR(dateMiseServiceUC) - (RIGHT(NOW(),5)<RIGHT(dateMiseServiceUC,5))) > 3
    c'est bon ca fonctionne !! il me met un résultat !!
    mais avant de mettre "résolu" je vais vérifier si c'est les bons résultats

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 81
    Points : 49
    Points
    49
    Par défaut
    YESSS ca fonctionne !!!
    un grand merci a toi

    par contre tu peux m'expliquer un peu le RIGHT car je n'ai jamais vu ca !!!
    merci

  11. #11
    Membre averti Avatar de Shivaneth
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 349
    Points : 341
    Points
    341
    Par défaut
    YEAR() récupère l'année
    RIGHT() récupère les 5 caractères les plus à droite de la date (mois, jour)
    La différence des deux parties de droites donne un résultat de 1 ou 0 qui sert à augmenter ou non le nombre d'années de différence entre les deux dates (date de mise en service et date actuelle)

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 81
    Points : 49
    Points
    49
    Par défaut
    ok merci beaucoup !!!!
    bonne journée

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

Discussions similaires

  1. Calculer la différence entre deux dates
    Par drthodt dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 18/12/2007, 08h27
  2. [Access] Calculer la différence entre 2 dates
    Par subnox dans le forum VBA Access
    Réponses: 3
    Dernier message: 07/08/2007, 14h16
  3. [Formule] Calculer la différence entre 2 dates
    Par titof90 dans le forum Excel
    Réponses: 1
    Dernier message: 22/05/2007, 17h07
  4. [Dates] Calculer la différence entre 2 dates
    Par cyberdevelopment dans le forum Langage
    Réponses: 2
    Dernier message: 13/04/2007, 13h34
  5. Réponses: 4
    Dernier message: 18/10/2006, 15h48

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