Date de Différence dans MySQL pour calculer l'âge
J'ai un problème concernant la datediff
MYSQL fonctionne, je peux l'utiliser, c'est simple. Mais je ne comprends pas comment l'utiliser pour recueillir des différences dans les champs de la table. E. g.
J'ai une colonne dob
et je veux écrire une requête qui doit faire quelque chose comme
select dateDiff(current_timeStamp,dob)
from sometable 'here dob is the table column
Je veux dire que je veux la différence à partir de la date actuelle heure de la zone de table dob
, chaque résultat de la requête est la différence, l'âge de l'utilisateur.
Ne "la différence de l'actuel datetime et un DOB" toujours que l'âge de la personne?
OriginalL'auteur chsab420 | 2009-09-05
Vous devez vous connecter pour publier un commentaire.
Tu veux dire?
(Source)
À l'aide de TIMESTAMPDIFF est une bien meilleure option
Manquant si aujourd'hui c'est l'anniversaire SELECT DATE_FORMAT(FROM_DAYS(DATEDIFF(MAINTENANT(), '2000-05-19')+1), "%Y")+0 l'âge de sometable
OriginalL'auteur Nadia Alramli
Que vous pourriez faire ce
SELECT TIMESTAMPDIFF(YEAR, date_of_birth, NOW()) AS
âgeFROM your_table
Fonctionne à chaque fois.
OriginalL'auteur djynnius
Si vous le souhaitez, pour chaque utilisateur, l'affichage de l'âge en années, ne
Alors, quel est le type de données sur votre date de naissance? Vous devez vraiment être à l'aide d'un type date/heure, pas un texte en clair.
OriginalL'auteur Martin v. Löwis
Si je comprends vos commentaires sur les réponses précédentes, la date de naissance de la colonne n'est pas réellement un
DATE
valeur, mais une chaîne de caractères dans le format j/m/y. Je fortement vous recommandons de changer cela; il ralentit toute date calculs que vous voulez et vous risque invalide valeurs à la date d'obtention entré dans la colonne.Je pense que c'est ce dont vous avez besoin. Il utilise le
STR_TO_DATE()
fonction et un algorithme pour le calcul de l'âge de la documentation de MySQL:OriginalL'auteur Ken Keenan
Je pense que cela devrait aider
SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(now()) - TO_DAYS(@dateofbirth)), '%Y') + 0;
Remarque: Donner la D. O. B dans le format correct, E. g.
YYYY-MM-DD'=> '1991-11-11
OriginalL'auteur VISHNU
Essayer cette
OriginalL'auteur Akhileshwar Reddy
OriginalL'auteur David S Gonzalez H