Calculer la différence d'âge en années sous forme d'un nombre 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érez la table 'student' 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 de manière incorrecte 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 :
SELECT TIMESTAMPDIFF(YEAR, date_of_birth, CURDATE()) AS difference FROM student
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 le champ expression :
SELECT TIMESTAMPDIFF(MONTH, date_of_birth, CURDATE()) AS difference FROM student
De même, pour la différence en jours, remplacez 'YEAR' par 'DAY' :
SELECT TIMESTAMPDIFF(DAY, date_of_birth, CURDATE()) AS difference FROM student
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3