Maison >base de données >tutoriel mysql >Comment calculer avec précision la différence d'âge en années à l'aide de MySQL ?
Calcul de la différence d'âge dans MySQL sous forme d'entier
Déterminer l'âge d'un individu dans une base de données peut poser des défis lors du calcul de dates. La fonction intégrée de MySQL DATEDIFF calcule la différence entre deux dates en jours, ce qui nécessite un traitement supplémentaire pour obtenir l'âge en années.
Une approche consiste à diviser la différence en jours par 365, mais cela donne une valeur à virgule flottante. valeur. Pour obtenir un nombre entier, les composantes année de la date actuelle et de la date de naissance peuvent être soustraites :
SELECT id, year(curdate())-year(birth_date) FROM student
Cependant, cette approche rencontre des problèmes lorsque l'âge calculé est décalé d'un an pour les personnes nées après le mois en cours. . Par exemple, une personne née en juin 1970 serait considérée comme âgée de 32 ans selon cette méthode même si elle n'a que 31 ans et cinq mois.
Résolution :
À Pour résoudre ce problème, MySQL fournit la fonction TIMESTAMPDIFF, qui offre une approche plus précise pour calculer les différences d'âge. La requête suivante utilise TIMESTAMPDIFF :
SELECT TIMESTAMPDIFF(YEAR, date_of_birth, CURDATE()) AS difference FROM student
En remplaçant YEAR par MOIS ou JOUR, les différences d'âge peuvent être calculées en mois ou en jours, respectivement. Cette méthode gère efficacement les scénarios dans lesquels l'âge est décalé d'une unité au cours de mois spécifiques.
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!