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 MySQL Discussion :

Comparaison de date par rapport à un calcul de date


Sujet :

Requêtes MySQL

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2012
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Comparaison de date par rapport à un calcul de date
    Bonjour

    Je ne connais pas le langage MySQL, j'utilise une appli qui m'aide à générer des requêtes, mais sur une requête je n'ai pas les fonctions nécessaires pour arriver à mon résultat.

    La requête généré par l'appli est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT ObjTmp.id FROM Article AS ObjTmp left outer join ObjTmp.attributSup AS ASUP WHERE (index(ASUP) = 'sup_Article_derniere_livraison_le') AND ASUP.date < '2012-06-05'
    la date du '2012-06-05' est fixée en dur, je souhaiterais quelle soit volatile du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DATE_SUB(CURRENT_DATE, INTERVAL 2 YEAR)   //date du jour moins 2 ans
    Merci par avance pour votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    bonjour,

    La requete étant horrible (la jointure en particulier), je vous conseillerai de commencer à coder vos requetes sql.

    Bref, vu que vous n'avez pas la main sur les requetes sql, il faudrait que vous vous rapprochiez du forum de votre appli.

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2012
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Merci pour votre réponse rapide.

    il n'existe pas de forum

    en essayant d'être plus clair je souhaiterais remplacer :
    date_de_ma_table < '2012-06-05'

    par

    date_de_ma_table < //date du jour - 2 ans

    Cordialement

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    ce que vous avez marquez plus haut me semble ok :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DATE_SUB(CURRENT_DATE, INTERVAL 2 YEAR)

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2012
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Quand j'exécute la requête avec cela mon appli me signale une erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT DISTINCT Obj1.code, (SELECT  CS1.alpha AS CS1_Grer_FAI__la_livraison FROM ArticleEntite AS Obj1CS left outer join Obj1CS.attributSupplementaire AS CS1 WHERE Obj1CS.id=Obj1.id AND (index(CS1) = 'sup_Article_gerer_fai_a_la_livraison')), (SELECT  CS2.date AS CS2_Dernire_Livraison_le FROM ArticleEntite AS Obj1CS left outer join Obj1CS.attributSupplementaire AS CS2 WHERE Obj1CS.id=Obj1.id AND (index(CS2) = 'sup_Article_derniere_livraison_le')) 
    FROM ArticleEntite AS Obj1  
    WHERE (Obj1.id not like 'DefaultRecord_%' AND Obj1.dateFinValidite is null) AND ( (Obj1.id in (SELECT ObjTmp.id FROM ArticleEntite AS ObjTmp left outer join ObjTmp.attributSupplementaire AS ASUP WHERE (index(ASUP) = 'sup_Article_gerer_fai_a_la_livraison') AND ASUP.alpha='1')) AND  (Obj1.id in (SELECT ObjTmp.id FROM ArticleEntite AS ObjTmp left outer join ObjTmp.attributSupplementaire AS ASUP WHERE (index(ASUP) = 'sup_Article_derniere_livraison_le') AND ASUP.date <'2012-06-05')) )
    Fonctionne


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT DISTINCT Obj1.code, (SELECT  CS1.alpha AS CS1_Grer_FAI__la_livraison FROM ArticleEntite AS Obj1CS left outer join Obj1CS.attributSupplementaire AS CS1 WHERE Obj1CS.id=Obj1.id AND (index(CS1) = 'sup_Article_gerer_fai_a_la_livraison')), (SELECT  CS2.date AS CS2_Dernire_Livraison_le FROM ArticleEntite AS Obj1CS left outer join Obj1CS.attributSupplementaire AS CS2 WHERE Obj1CS.id=Obj1.id AND (index(CS2) = 'sup_Article_derniere_livraison_le')) 
    FROM ArticleEntite AS Obj1  
    WHERE (Obj1.id not like 'DefaultRecord_%' AND Obj1.dateFinValidite is null) AND ( (Obj1.id in (SELECT ObjTmp.id FROM ArticleEntite AS ObjTmp left outer join ObjTmp.attributSupplementaire AS ASUP WHERE (index(ASUP) = 'sup_Article_gerer_fai_a_la_livraison') AND ASUP.alpha='1')) AND  (Obj1.id in (SELECT ObjTmp.id FROM ArticleEntite AS ObjTmp left outer join ObjTmp.attributSupplementaire AS ASUP WHERE (index(ASUP) = 'sup_Article_derniere_livraison_le') AND ASUP.date <DATE_SUB(CURRENT_DATE, INTERVAL 2 YEAR))) )
    Ne fonctionne pas avec un message : unexpected token: 2 near line 3, column 583

  6. #6
    Invité
    Invité(e)
    Par défaut
    Et curdate() à la place de CURRENT_DATE?

  7. #7
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2012
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    J'avais déjà essayé mais ne fonctionne pas avec : DATE_SUB(CURDATE(), INTERVAL 2 YEAR)

  8. #8
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    vous exécutez cette requête directement sur MySql (via toad, phpMyAdmin, mysqlworkbench, ...) ?

  9. #9
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2012
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Non je l’exécute à partir d'une fenêtre de l'application

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/03/2013, 15h03
  2. Réponses: 5
    Dernier message: 25/06/2007, 11h01
  3. Réponses: 2
    Dernier message: 21/03/2007, 16h06
  4. Réponses: 9
    Dernier message: 04/01/2007, 11h58
  5. Réponses: 7
    Dernier message: 22/11/2006, 09h14

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