Claculer age exact a partir d'une date de naissance

Résolu
cs_jolicoeur79
Messages postés
63
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
1 avril 2018
- Modifié le 26 oct. 2021 à 22:12
cs_jolicoeur79
Messages postés
63
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
1 avril 2018
- 11 janv. 2016 à 18:16
Bonjour,
et bonne année 2016
j'ai un table sous mysql qui contient une date_naissance varchar(10)
qui contient des donnees soit sous format 1980/05/20 ou 1985
et je voudrais calculer age exact;
apres des recherche sur internet j'ai trouver ce code qui calcule age exact :

SELECT *,
 YEAR(CURDATE()) - YEAR(`date_naissance`) - 
IF(STR_TO_DATE(CONCAT(YEAR(CURDATE()), '-', MONTH(`date_naissance`), '-', DAY(`date_naissance`)) ,'%Y-%c-%e') > CURDATE(), 1, 0) 
AS age 
FROM `t_table`

le resultat pour les date sous format aaaa/mm/jj se calcul bien
mais pour les format aaaa donne le résultat null

date_naissance | age
1978/12/23 | 37
1985 | Null

est ce que quelqu'un peut m'aider pour améliorer cette requette pour claculer les deux format
et merci

--

4 réponses

jordane45
Messages postés
36332
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 septembre 2022
350
3 janv. 2016 à 00:52
Bonjour,


j'ai un table sous mysql qui contient une date_naissance varchar(10)

Aie .... pourquoi utilises tu un varchar pour stocker une date ????
Une date .... ça se stocke via un DateTime ou un TimeStamp !
Donc au lieu de stocker tes dates au format aaaa/mm/dd .... enregistres les au format yyyy-mm-dd (dans un champ de type datetime). Tu verras alors que leur manipulation via des requête sera beaucoup (mais alors vraiment beaucoup ) plus simples.


0