Date SQL

Résolu/Fermé
papyclic Messages postés 446 Date d'inscription mercredi 5 novembre 2014 Statut Membre Dernière intervention 18 octobre 2016 - 26 févr. 2015 à 12:40
papyclic Messages postés 446 Date d'inscription mercredi 5 novembre 2014 Statut Membre Dernière intervention 18 octobre 2016 - 27 févr. 2015 à 10:42
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 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
26 févr. 2015 à 13:02
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
26 févr. 2015 à 13:03
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 mercredi 5 novembre 2014 Statut Membre Dernière intervention 18 octobre 2016 3
26 févr. 2015 à 14:14
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 mercredi 5 novembre 2014 Statut Membre Dernière intervention 18 octobre 2016 3
26 févr. 2015 à 17:56
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
27 févr. 2015 à 07:12
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
27 févr. 2015 à 07:41
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 mercredi 5 novembre 2014 Statut Membre Dernière intervention 18 octobre 2016 3
27 févr. 2015 à 10:42
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