Je suis en train d'imprimer pour chaque personne son âge en utilisant ce format:Comment obtenir l'âge en années, mois et jours en utilisant Oracle
par exemple: 19 ans, 8 mois, 13 jours.
J'ai beaucoup googlé et j'ai remarqué qu'il y a une fonction spécifique pour calculer la différence entre les dates DATEDIFF
.
Cependant cette fonction n'existe pas dans SQL*Plus
, donc j'ai continué à essayer en utilisant MONTHS_BETWEEN()
et quelques opérateurs.
Ma tentative:
SELECT name , ' ' ||
FLOOR(MONTHS_BETWEEN(to_date(SYSDATE),to_date(date_of_birth))/12)||' years ' ||
FLOOR(MOD(MONTHS_BETWEEN(to_date(SYSDATE),to_date(date_of_birth)),12)) || ' months ' ||
FLOOR(MOD(MOD(MONTHS_BETWEEN(to_date(SYSDATE),to_date(date_of_birth)),12),4))|| ' days ' AS "Age"
FROM persons;
Ma question repose sur l'obtention des jours. Je ne sais pas comment calculer les jours, en utilisant cette fonction ('essayé de diviser par 4, ou 30); Je pense que ma logique est mauvaise mais je n'arrive pas à comprendre, des idées?
Vous devez ajouter "oracle" pour vous des tags –
Je pense qu'il est la même question [ici] (http://stackoverflow.com/questions/3015431/oracle-age-calculation-from-date-of-birth -et-aujourd'hui) –