Question

J'ai un problème en ce qui concerne la fonction MYSQL datediff, je peux l'utiliser et il est simple. Mais je ne comprends pas comment l'utiliser pour recueillir des différences dans le champ de la table. Par exemple.

J'ai un dob de colonne et je veux écrire une requête qui va 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 du moment de la date actuelle du champ de table dob, chaque résultat de la requête est la différence, l'âge de l'utilisateur.

Était-ce utile?

La solution

Vous voulez dire comme ça?

SELECT DATE_FORMAT(FROM_DAYS(DATEDIFF(NOW(), dob)), "%Y")+0 AS age from sometable

( Source )

Autres conseils

Vous pouvez le faire

SELECT TIMESTAMPDIFF(YEAR, date_of_birth, NOW()) ASageFROM your_table

Travaux à chaque fois.

Si vous voulez, pour chaque utilisateur, afficher l'âge en années, faire

select name,extract(year from (from_days(dateDiff(current_timestamp,dob)))) 
       from sometable;

Si je comprends vos commentaires sur les réponses précédentes, la date de naissance colonne n'est pas réellement une valeur DATE mais une chaîne au format m / d / y. I fortement vous recommandons de changer cela; il ralentit les calculs de date que vous voulez faire et vous risquez des valeurs de date invalides s'entrée dans la colonne.

Je pense que c'est ce que vous avez besoin. Il utilise la fonction STR_TO_DATE() et un algorithme de calcul de l'âge de la documentation MySQL:

SELECT YEAR(CURDATE()) - YEAR(STR_TO_DATE(dob, '%m/%d/%Y'))
- (RIGHT(CURDATE(), 5) < RIGHT(STR_TO_DATE(dob, '%m/%d/%Y'), 5)) AS age
FROM sometable;

Je pense que cela devrait aider

SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(now()) - TO_DAYS(@dateofbirth)), '%Y') + 0;

Note: Donnez le D.O.B dans le bon format, par exemple YYYY-MM-DD'=> '1991-11-11

Essayer cette

SELECT DATEDIFF(CURDATE(), '2014-02-14');
select truncate(datediff(curdate(),dob)/365.25,0) from table;
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top