Déterminer l'âge d'après la date de naissance

Si vous gérez une communauté en ligne, il est possible que vous ayez à afficher l'âge d'un utilisateur selon la date de naissance qu'il a fournie dans son profil. Il existe différentes solutions, mais parfois, c'est pratique d'accéder à cette information directement avec la requête MySQL :

  1. SET @anniversaire = '1987-05-30';

Il vous faut fournir la date comme MySQL l'aime bien, c'est-à-dire sous le format YY-MM-DD.

L'exemple ci-dessus aura pour résultat l'âge qu'a aujourd'hui une personne ayant vu le jour le 30 mai 1987 (« aujourd'hui » = la date de rédaction de cet article). Nous avons utilisé SET dans l'exemple afin de simplifier les choses et ne pas avoir à aller quérir des données dans une table d'utilisateurs.

Si vous possédez, par exemple, une table appelée Utilisateurs, possédant une colonne contenant la date de naissance de chacun des utilisateurs du site (appelée Date_Anniversaire), il serait possible de formuler votre requête MySQL de cette façon :

  1. SELECT Nom_Utilisateur, Date_Anniversaire, (SELECT EXTRACT(YEAR FROM CURRENT_DATE) - EXTRACT(YEAR FROM Date_Anniversaire) - (CASE WHEN EXTRACT(MONTH FROM CURRENT_DATE) < EXTRACT(MONTH FROM Date_Anniversaire) THEN 1 ELSE (CASE WHEN (EXTRACT(DAY FROM CURRENT_DATE) < EXTRACT(DAY FROM Date_Anniversaire) AND EXTRACT(MONTH FROM CURRENT_DATE) = EXTRACT(MONTH FROM Date_Anniversaire)) THEN 1 ELSE 0 END) END)) AS Age  FROM Utilisateurs

Selon la « date d'aujourd'hui », le résultat devrait ressembler à ceci :

Nom_Utilisateur Date_Anniversaire Age
Phil14 1991-12-02 14:31:19 17
MaryJuicy03 1966-02-12 14:32:34 42
Richard23 1997-12-18 14:33:29 10
Ça parle de

Commentaires

Commenter sur ce sujet :

Le contenu de ce champ sera maintenu privé et ne sera pas affiché publiquement.
  • Les adresses de pages web et de messagerie électronique sont transformées en liens automatiquement.
  • Les lignes et les paragraphes vont à la ligne automatiquement.
  • You can enable syntax highlighting of source code with the following tags: <code>, <actionscript>, <apache>, <bash>, <dos>, <html>, <javascript>, <mysql>, <php>, <xml>.
  • Every instance heading tags will be modified to include an id attribute for anchor linking.
  • Image links with 'rel="lightbox"' in the <a> tag will appear in a Lightbox when clicked on.
  • Image links with 'rel="lightshow"' in the <a> tag will appear in a Lightbox slideshow when clicked on.
  • Links to HTML content with 'rel="lightframe"' in the <a> tag will appear in a Lightbox when clicked on.
  • Links to video content with 'rel="lightvideo"' in the <a> tag will appear in a Lightbox when clicked on.
  • Links to inline or modal content with 'rel="lightmodal"' in the <a> tag will appear in a Lightbox when clicked on.
  • Links to specified hosts will have a rel="nofollow" added to them.

  • Insert <!--tableofcontents [list: ol; title: Table of Contents; minlevel: 2; maxlevel: 3; attachments: yes;]--> to insert a mediawiki style collapsible table of contents. Arguments within [] are optional.

Plus d'informations sur les options de formatage