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

Installation MySQL Discussion :

Clause Where sur une Date


Sujet :

Installation MySQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 65
    Points : 24
    Points
    24
    Par défaut Clause Where sur une Date
    Bonjour,

    Voilà j'ai une requête qui devrait me permettre de récupérer
    des articles approchant de la date d'expiration : (voir requête).
    En fait, je selectionne la date courante + 15 jours, le temps de voir venir !
    Je crée donc une alerte sur certains produits 15 jours avant leurs date d'expiration...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT l.id, l.reference, l.designation, l.Expiration_date, l.qte_total_out, l.qte_total_in, (l.qte_total_in - l.qte_total_out) as 'inStock', p.qte_pick, l.lot_number, p.qte_return, p.date_picking
    FROM lot_number as l join picking as p on p.id_lot = l.id
    WHERE l.Expiration_date = CURDATE() + 15
    Mais bon, ça ne fonctionne pas, est-ce que qlq'1 peu m'aiguiller.
    Merci

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 65
    Points : 24
    Points
    24
    Par défaut
    J'ai essayé ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE l.Expiration_date>(UNIX_TIMESTAMP(NOW())+ 21600)
    Date du jour + 15 jours
    Vous en pensez quoi ?
    Merci

  3. #3
    Membre expérimenté
    Avatar de Adjanakis
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    739
    Détails du profil
    Informations personnelles :
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2004
    Messages : 739
    Points : 1 351
    Points
    1 351
    Par défaut
    Bonsoir,

    Il y a une fonction MySQL nommée ADDDATE(), ça ne serait pas une solution au problème ?
    Pensez au tag

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    WHERE l.Expiration_date <= date_add&#40;curdate&#40;&#41;, interval 15 day&#41;

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 65
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par jeca
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    WHERE l.Expiration_date <= date_add&#40;curdate&#40;&#41;, interval 15 day&#41;
    Bonjour, et merci pour ta réponse :
    Mais ça ne filtre pas la colonne date ! Cette requête me renvoi l'ensemble
    des dates d'expiration. De plus, j'ai stocké les dates au format Mois/Jour/Année.

    Merci

  6. #6
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 641
    Points
    4 641
    Par défaut
    salut.

    cela me semble bizarre que la solution de Jeca ne marche.
    enfin pour toi c'est un "=" au lieu de "<=".

    Mais cela devrait fonctionner.

    De plus, j'ai stocké les dates au format Mois/Jour/Année
    la date n'est stocké dans un format date?
    tu utilise un char?

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 65
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par Cybher
    salut.

    cela me semble bizarre que la solution de Jeca ne marche.
    enfin pour toi c'est un "=" au lieu de "<=".

    Mais cela devrait fonctionner.

    De plus, j'ai stocké les dates au format Mois/Jour/Année
    la date n'est stocké dans un format date?
    tu utilise un char?
    Si si ça marche fallait juste changer le comparateur.
    Exact, j'ai mis ce champ en varchar, mais je vais changer ça !
    Merci

  8. #8
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    Ceci est fait pour fonctionner avec un format date mysql : AAAA-MM-JJ

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 65
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par jeca
    Ceci est fait pour fonctionner avec un format date mysql : AAAA-MM-JJ
    Effectivement, après avoir fait des tests avec une date AAAA-MM-JJ, ça fonctionne trés bien. Je vais modifier le champ Date.

    Merci bcp.
    A+

  10. #10
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    si tu utilises un champs de type DATE ( yyyy-mm-jj )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE DATE_FORMAT&#40;l.Expiration_date, "%m"&#41; <=  &#40;DATE_FORMAT&#40;CURDATE&#40;&#41;, "%m"&#41; - 15&#41;
    sinon si tu utilises un champs de type VARCHAR ( mm/jj/yyyy )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE DATE_FORMAT&#40;STRTODATE&#40;l.Expiration_date, "%m/%d/%Y"&#41;, "%m"&#41; <= &#40;DATE_FORMAT&#40;CURDATE&#40;&#41;, "%m"&#41; - 15&#41;;

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 65
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par jeca
    Ceci est fait pour fonctionner avec un format date mysql : AAAA-MM-JJ
    Existe-t-il un moyen de conserver cette structure avec un champ en varchar, et modifier l'ordre de la date avec un :
    GET_FORMAT(DATE,'INTERNAL')

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 65
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par ska_root
    si tu utilises un champs de type DATE ( yyyy-mm-jj )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE DATE_FORMAT&#40;l.Expiration_date, "%m"&#41; <=  &#40;DATE_FORMAT&#40;CURDATE&#40;&#41;, "%m"&#41; - 15&#41;
    sinon si tu utilises un champs de type VARCHAR ( mm/jj/yyyy )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE DATE_FORMAT&#40;STRTODATE&#40;l.Expiration_date, "%m/%d/%Y"&#41;, "%m"&#41; <= &#40;DATE_FORMAT&#40;CURDATE&#40;&#41;, "%m"&#41; - 15&#41;;
    Wahou,,, j'ai même pas le tps de poster ma question que la réponse arrive déjà !!! la je dis RESPECT !!!
    un grand merci à tous.

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 65
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par Zebulonn
    Citation Envoyé par ska_root
    si tu utilises un champs de type DATE ( yyyy-mm-jj )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE DATE_FORMAT&#40;l.Expiration_date, "%m"&#41; <=  &#40;DATE_FORMAT&#40;CURDATE&#40;&#41;, "%m"&#41; - 15&#41;
    sinon si tu utilises un champs de type VARCHAR ( mm/jj/yyyy )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE DATE_FORMAT&#40;STRTODATE&#40;l.Expiration_date, "%m/%d/%Y"&#41;, "%m"&#41; <= &#40;DATE_FORMAT&#40;CURDATE&#40;&#41;, "%m"&#41; - 15&#41;;
    Wahou,,, j'ai même pas le tps de poster ma question que la réponse arrive déjà !!! la je dis RESPECT !!!
    un grand merci à tous.
    Léger problème :
    Parse error: parse error, unexpected '%'
    A quoi sert le %m ?

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 65
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par ska_root
    si tu utilises un champs de type DATE ( yyyy-mm-jj )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE DATE_FORMAT&#40;l.Expiration_date, "%m"&#41; <=  &#40;DATE_FORMAT&#40;CURDATE&#40;&#41;, "%m"&#41; - 15&#41;
    sinon si tu utilises un champs de type VARCHAR ( mm/jj/yyyy )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE DATE_FORMAT&#40;STRTODATE&#40;l.Expiration_date, "%m/%d/%Y"&#41;, "%m"&#41; <= &#40;DATE_FORMAT&#40;CURDATE&#40;&#41;, "%m"&#41; - 15&#41;;
    Il doit y avoir une erreur dans ta requête :
    You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '(l.Expiration_date, '%m/%d/%Y'), '%m') <= (DATE_FORMAT(CURDATE(

    Je cherche de mon côté...

  15. #15
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    exact scuze, en fait il faut combiner les deux solutions,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    WHERE STR_TO_DATE&#40;l.Expiration_date, "%m/%d/%Y"&#41; <= DATE_ADD&#40;CURDATE&#40;&#41;, INTERVAL 15 DAY&#41;;

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 65
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par ska_root
    exact scuze, en fait il faut combiner les deux solutions,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    WHERE STR_TO_DATE&#40;l.Expiration_date, "%m/%d/%Y"&#41; <= DATE_ADD&#40;CURDATE&#40;&#41;, INTERVAL 15 DAY&#41;;
    Merci mais marche tjs pas !
    Parse error: parse error, unexpected '%'

    j'ai essayé '%m%d%y' mais la non plus ça marche pas ....

  17. #17
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    Parse error: parse error, unexpected '%'
    tu parles du résultat php là ?
    mais dans mysql, la requête passe, non ?

    sinon pour le parse error, fais voir ton code au niveau de la requete, ça doit être une boulette au niveau des quotes...

  18. #18
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 65
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par ska_root
    Parse error: parse error, unexpected '%'
    tu parles du résultat php là ?
    mais dans mysql, la requête passe, non ?

    sinon pour le parse error, fais voir ton code au niveau de la requete, ça doit être une boulette au niveau des quotes...
    Effectivement, c'est le résultat qui ne s'affiche pas, mais la requête
    ne passe pas non plus ! Il y a quand même une erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    mysql_select_db&#40;$database_MAS500, $MAS500&#41;;
    $query_R8 = "SELECT l.id, l.reference, l.designation, l.Expiration_date, l.qte_total_out, l.qte_total_in, &#40;l.qte_total_in - l.qte_total_out&#41; AS 'inStock', p.qte_pick, l.lot_number, p.qte_return, p.date_picking FROM lot_number AS l JOIN picking AS p ON p.id_lot = l.id WHERE l.Expiration_date >= date_add&#40;curdate&#40;&#41;, interval 15 day&#41; ";
    $R8 = mysql_query&#40;$query_R8, $MAS500&#41; or die&#40;mysql_error&#40;&#41;&#41;;
    $row_R8 = mysql_fetch_assoc&#40;$R8&#41;;
    $totalRows_R8 = mysql_num_rows&#40;$R8&#41;;

  19. #19
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    mets un "AND" a la place du "WHERE"
    ;-)

  20. #20
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 65
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par ska_root
    mets un "AND" a la place du "WHERE"
    ;-)
    Marche pas !!!
    Bon je vais revoir le requête ...
    Merci

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Clause Where sur une colonne renommée
    Par 13mike dans le forum Langage SQL
    Réponses: 3
    Dernier message: 29/01/2011, 14h47
  2. substr dans un where sur une date '2010-04-30 12:11:12'
    Par sinifer dans le forum Requêtes
    Réponses: 6
    Dernier message: 03/05/2010, 15h52
  3. Clause where avec une date..
    Par bobic dans le forum Requêtes
    Réponses: 3
    Dernier message: 09/04/2008, 17h12
  4. Réponses: 3
    Dernier message: 19/06/2007, 23h34
  5. [MySQL] Clause WHERE sur une liste et jeu de caractère
    Par napz dans le forum Langage SQL
    Réponses: 5
    Dernier message: 11/10/2006, 14h03

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