Maison >base de données >tutoriel mysql >Comment calculer la différence d'âge en années sous forme d'entier dans MySQL ?

Comment calculer la différence d'âge en années sous forme d'entier dans MySQL ?

DDD
DDDoriginal
2024-10-29 18:10:50496parcourir

 How to Calculate Age Difference in Years as an Integer in 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn