Maison >base de données >tutoriel mysql >Comment calculer la différence d'âge en années sous forme d'entier dans MySQL ?
Calcul de la différence d'âge en années sous forme d'entier dans MySQL
Déterminer l'âge d'une personne dans une base de données présente un léger défi lorsqu'il s'agit de calculs d'âge . Considérons le tableau « étudiant » avec les colonnes « id » et « Birth_date ».
Pour calculer l'âge en jours, l'expression datediff(curdate(),birth_date) peut être utilisée, mais elle renvoie une valeur à virgule flottante. . La division par 365 donne également une valeur à virgule flottante.
Le calcul des années sous la forme year(curdate())-year(birth_date) introduit également un problème. Par exemple, si une personne est née en juin 1970 et que la date actuelle est en mai, l'expression renverrait incorrectement 32 ans au lieu de 31.
Solution alternative pour la différence d'année entière :
Pour résoudre ce problème, considérez l'instruction SQL suivante :
<code class="sql">SELECT TIMESTAMPDIFF(YEAR, date_of_birth, CURDATE()) AS difference FROM student</code>
Cette expression calcule la différence entre la « date_of_birth » et « CURDATE() » en années, ce qui donne une valeur entière.
Extension pour les mois et les jours :
Pour calculer la différence en mois, remplacez 'ANNÉE' par 'MOIS' dans l'expression :
<code class="sql">SELECT TIMESTAMPDIFF(MONTH, date_of_birth, CURDATE()) AS difference FROM student</code>
De même, pour la différence en jours, remplacez 'ANNÉE' par 'JOUR' :
<code class="sql">SELECT TIMESTAMPDIFF(DAY, date_of_birth, CURDATE()) AS difference FROM student</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!