Calcul de la différence d'âge en années dans MySQL : une solution complète
Déterminer l'âge des individus stockés dans une base de données est une tâche courante. Cependant, calculer la différence en années entre deux dates peut s'avérer difficile, car les méthodes conventionnelles entraînent souvent des inexactitudes ou des formats de données indésirables.
Supposons que nous ayons un tableau simplifié nommé « étudiant » avec les colonnes « id » et « birth_date ". L'objectif est de calculer l'âge de chaque élève en années.
Tentatives et défis initiaux
À l'aide de la requête suivante :
select id, datediff(curdate(),birth_date) from student
nous obtenir la différence d’âge en jours, ce qui n’est pas le résultat souhaité. Division par 365 :
select id, datediff(curdate(),birth_date) / 365 from student
produit une valeur à virgule flottante au lieu d'un nombre entier. Enfin, le calcul :
select id, year(curdate())-year(birth_date) from student
entraîne des inexactitudes dues aux anniversaires survenant après la date actuelle, ce qui donne des calculs d'âge incorrects.
Une solution alternative
Pour relever ces défis, considérez la requête suivante :
SELECT TIMESTAMPDIFF(YEAR, date_of_birth, CURDATE()) AS difference FROM student
L'utilisation de la fonction TIMESTAMPDIFF() garantit un calcul précis des années, même si les anniversaires tombent dans l'année en cours.
Pour pour une plus grande flexibilité, remplacez "ANNÉE" par "MOIS" ou "JOUR" pour calculer les différences en mois ou en jours, respectivement.
Cette solution fournit une méthode précise et précise pour déterminer la différence d'âge en années entre deux dates stockées dans une base de données MySQL.
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!