Date SQL

Résolu
papyclic Messages postés 446 Date d'inscription   Statut Membre Dernière intervention   -  
papyclic Messages postés 446 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour
Je recherche à afficher la date des membres dont l'age est plus petit que 16 ans.
J'ai une table ou le champ est "naissance" j'affiche sans problème tous les membres.
Je n'arrive pas à comprendre comment je pourrais faire.
J'ai essayé quelque chose du style
	$sql = "SELECT *
			FROM tb_adherent
			WHERE DATE(naissance)<=16
			AND actif = 1
			ORDER BY nom, prenom ASC";
	$requete = $bdd->prepare($sql);							
	$requete->execute();

Pouvez-vous s'ils vous plait m'aider un peu.
Je vous remercie

6 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Pour calculer l'age ... il faut que tu fasse la soustraction entre la date d'aujourd'hui... et ton champ date de naissance....

https://sql.sh/fonctions/datediff

.

0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour
qu'il y a t'il dans le champ "naissance" ? date de naissance, age, etc ?
0
papyclic Messages postés 446 Date d'inscription   Statut Membre Dernière intervention   3
 
Bonjour et merci
Dans mon champ 'naissance' c'est de type date par exemple 2000.11.03
mais j'ai une fonction qui permet de mettre cette date en français
03 novembre 2000

Merci de votre aide
0
papyclic Messages postés 446 Date d'inscription   Statut Membre Dernière intervention   3
 
j'ai essayé ça pouvez-vous m'aider s'ils vous plait.
je récupére récupérer la date courante
et je soustrais la date de mon champ de ma BDD

Merci
	$sql = "SELECT nom, prenom, CURRENT_DATE() - DATE(naissance)
			FROM tb_adherent
			WHERE DATE(naissance) <= 16
			AND actif = 1
			ORDER BY nom, prenom ASC";
	$requete = $bdd->prepare($sql);							
	$requete->execute();
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Jordane 45 t'a fourni une proposition
la fonction date ne te donne pas l'age !!!
si tu considères l'age "dans l'année", il faut faire l'a différence entre l'annéée en cours et l'année de naissance
en algo:
Age := annee(aujourdhui)-annee(naissance)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
 
Bonjour

Tu ouvres le manuel mysql, au chapitre des fonctions relatives aux date, et tu trouves DATEDIFF :
https://dev.mysql.com/doc/refman/5.6/en/date-and-time-functions.html#function_datediff
0
papyclic Messages postés 446 Date d'inscription   Statut Membre Dernière intervention   3
 
Bonjour
Merci beaucoup à vous tous qui m'avez aidé, j'ai pu mettre en place ma requète qui me retourne bien les éléves qui ont moins de 16 ans.
Voici pour ceux à qui ça peut aider.
	$sql = "SELECT nom, prenom, ville, naissance, Year(CURDATE())-Year(naissance) 
			FROM tb_adherent
			WHERE ((Year(CURDATE())-Year(naissance)) <= 16)
			AND actif = 1
			ORDER BY nom, prenom ASC";
	$requete = $bdd->prepare($sql);							
	$requete->execute();
0