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

PHP & Base de données Discussion :

Filtrer une date de naissance selon le mois en cours


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 412
    Par défaut Filtrer une date de naissance selon le mois en cours
    Bonjour à tous en ce premier mai

    Je vous rejoint aujourd'hui car je n'arrive pas à filtrer ma requête

    Je m'explique, j'ai une table où est enregistré des dates de naissance(ddn) sous la forme 01/05/1980.....

    J'aimerai que ma requête filtre ces dates de naissances en affichant que celles du mois en cours, c'est à dire que pour le moi de mai je ne veux que les dates de naissances du moi de mai.

    J'avoue que la je bloque.

    voici le début de ma requête mais après plusieurs essai je n'arrive pas a la conclure.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $select = '	SELECT * FROM rh WHERE MONTH( ddn ) = EXTRACT( MONTH FROM CURRENT_DATE );';
    Avez-vous une idée

    Merci à vous

  2. #2
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 986
    Par défaut
    Je ne vois pas ce qu'EXTRACT vient faire ici:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT nom, prenom, email -- on évite l'astérisk et on liste uniquement les colonnes nécessaires
    FROM rh 
    WHERE MONTH(ddn) = MONTH(CURRENT_DATE)

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 412
    Par défaut
    Merci pour votre réponse et je prend note pou "*"

    Du fait j'ai essayé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $select = '	SELECT nom, ddn FROM rh WHERE MONTH(ddn) = MONTH(CURRENT_DATE)';
    Mais rien ne s'affiche.
    Par contre je n'ai pas d'erreur

    Et je précise, j'ai bien des personnes nées au mois de Mai.

    Est-ce parce que dans ma Bdd la date de naissance est au format d/m/Y

  4. #4
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 347
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 347
    Billets dans le blog
    17
    Par défaut
    Est-ce parce que dans ma Bdd la date de naissance est au format d/m/Y
    Cela veut dire que tu n'utilises pas une colonne de type DATE.
    Stocke tes valeurs au format adapté (YYYY-MM-DD) dans une colonne au type adapté, et tout ira bien.

    Pour tester :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT ALL MONTH('23/05/2023'); -- Chaîne au mauvais format => NULL
    SELECT ALL MONTH('2023-05-23'); -- Chaîne au bon format => 5 (parce que MySQL est sympa)
    SELECT ALL MONTH(DATE'2023-05-23'); -- Date correctement typée/formée => 5

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 412
    Par défaut
    En effet Séb cela fonctionne sans problème avec des données type date

    Du coup je vais revoir mon formulaire d'inscription pour que la date de naissance soit directement enregistrée sous ce format

    Merci à toi

    Bonne journée

  6. #6
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 986
    Par défaut
    C'est surtout la définition de ta colonne dans ta base de données que tu dois revoir.

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

Discussions similaires

  1. Encoder une date de naissance
    Par IDE dans le forum C
    Réponses: 4
    Dernier message: 10/04/2007, 07h58
  2. passer une date de naissance comme parametre via servlet ?
    Par haifa28 dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 28/03/2007, 12h10
  3. Requete a partir d'une date de naissance pour obtenir un age
    Par Fleur-Anne.Blain dans le forum Langage SQL
    Réponses: 11
    Dernier message: 10/08/2006, 12h40
  4. Pl/SQL J'ai un âge, je voudrais une date de naissance
    Par Fleur-Anne.Blain dans le forum PL/SQL
    Réponses: 10
    Dernier message: 10/08/2006, 09h17
  5. [Dates] affichage différent selon le mois en cours
    Par itri2005 dans le forum Langage
    Réponses: 3
    Dernier message: 07/04/2006, 17h05

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