Maison > base de données > tutoriel mysql > Comment calculer avec précision l'âge sous forme d'entier dans MySQL ?

Comment calculer avec précision l'âge sous forme d'entier dans MySQL ?

Barbara Streisand
Libérer: 2024-10-28 19:49:02
original
1006 Les gens l'ont consulté

 How to Accurately Calculate Age as an Integer in MySQL?

Calcul de l'âge sous forme d'entier dans MySQL

Lors de la détermination de l'âge d'un individu en fonction de sa date de naissance stockée dans une base de données MySQL, le la différence de jours fournie par la fonction DATEDIFF() ne parvient pas à fournir une représentation entière précise. Pour surmonter ce défi, une approche en plusieurs étapes est nécessaire.

Étape 1 : Calculer les années

L'expression YEAR(CURDATE()) - YEAR(birth_date) donne la différence en années entre la date actuelle et la date de naissance. Toutefois, cette approche ne tient pas compte des années incomplètes. Par exemple, si la date actuelle est mai mais que la date de naissance est juin, l'âge de l'individu est toujours de 31 ans.

Étape 2 : Corriger les années incomplètes

Pour répondre le problème des années incomplètes, la sous-requête suivante peut être utilisée :

(SELECT FLOOR((DAYOFYEAR(CURDATE()) - DAYOFYEAR(birth_date)) / 365.25))
Copier après la connexion

Cette sous-requête calcule le nombre d'années et de jours écoulés depuis la date de naissance de l'individu, en tenant compte des années bissextiles.

Étape 3 : Combiner les résultats

L'expression finale pour calculer l'âge sous forme d'entier est :

(YEAR(CURDATE()) - YEAR(birth_date)) - (SELECT FLOOR((DAYOFYEAR(CURDATE()) - DAYOFYEAR(birth_date)) / 365.25))
Copier après la connexion

Cette expression soustrait les années incomplètes du nombre total d'années, ce qui donne dans un entier représentant l'âge de l'individu.

Solution alternative

Une autre option pour calculer l'âge sous forme d'entier dans MySQL consiste à utiliser la fonction TIMESTAMPDIFF() :

SELECT TIMESTAMPDIFF(YEAR, date_of_birth, CURDATE()) AS difference FROM student
Copier après la connexion

Cette fonction calcule directement la différence en années entre deux horodatages, évitant ainsi le recours à des calculs complexes. Il peut également être utilisé pour calculer des différences en mois ou en jours en remplaçant ANNÉE par MOIS ou JOUR.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal