Maison  >  Article  >  base de données  >  Comment calculer la différence d'âge précise en années dans MySQL ?

Comment calculer la différence d'âge précise en années dans MySQL ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-31 12:12:01970parcourir

How to Calculate the Accurate Age Difference in Years in MySQL?

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!

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