Date: prev next · Thread: first prev next last
2013 Archives by date, by thread · List index




Le 26/12/2013 21:59, Docgranville a écrit :
Le 26/12/2013 17:03, Guy GOURLAIN a écrit :
Bonjour,
j'ai une liste de noms avec les dates de naissance correspondantes.
Je souhaite calculer l’âge de chaque personne (âge+nombre de mois).
j'ai trouvé un exemple dans la FAQ (signé Pierre Yves Samyn) mais je ne sais pas comment poser la requête et je ne trouve pas la commande SQL indiquée.
Comment faire ?
En attendant bonne fin d'année à toutes et tous.
Guy


Bonsoir,

Tu ne le précises pas, mais comme tu parles de SQL, je suppose que nous sommes dans Base?

Par ailleurs, tu ne précises pas non plus à partir de quand ton calcul doit incrémenter le compteur de mois ; est-ce que l'on compte lespériodes de 30 jours ? ou bien s'agit-il de décompter les mois civils et donc les périodes de 28 (ou 29), 30 et 31 jours exactement ? ou bien encore celles -moyennes- de 365,25/12 ?

Tes amies, dans ce domaine sont les fonctions suivantes :
- DATEDIFF(x,y) ; cette fonction te donnera le nombre de jours séparant la date x de la date y; c'est le résultat de la soustraction (x-y) ; - CURDATE() ; te renvoie la date courante ; ça évite d'entrer une date en "dur" dans la requête et d'avoir à la modifier chaque fois que l'on veut s'en servir ; - [a DIV b] ; c'est la fonction division entière ; par exemple "7 DIV 3" te renvoie 2 ; ici, elle servira à déterminer le nombre entier d'années écoulées, en pratiquant la division entière du résultat de DATEDIFF(x,y) par 365,25 (le nombre de jours dans une année) ; le problème (je crois) c'est que DIV n'est pas toujours très à l'aise avec certaines formes de nombres ; ainsi, la formule "365 DIV 365,25" renvoie-t-elle le résultat "1", ce qui est tout de même relativement inexact... ; ça peut-être gênant lorsque l'on est à la veille de la date anniversaire. - MOD(a,b) ; cette fonction sort le reste de la division de a par b ; par exemple MOD(14,3) donne 2 (puisque 14 divisé par 3 donne 4 et il reste 2).

Encore faut-il savoir quel niveau de précision tu comptes atteindre ; est-ce qu'une erreur de un ou deux jours (impliquant donc qu'à certaines date particulières, le résultat anticipera ou retardera l'octroi d'un mois plein supplémentaire) est acceptable ou est-il indispensable que l'outil ne puisse jamais être pris en défaut ?

A+
Je n'ai pas prêté attention et n'ai donc pas percuté que l'exemple relevé était dans Base (que je ne maîtrise pas du tout). j'ai essayé de calculer les âges dans calc en insérant la fonction Dates & Heures > Années J'ai inséré la date initiale, la date de fin et le choix du mode se réduit à 0 pour le nombre d'années dans l'intervalle (1 pour les années de calendrier)
Je n'ai pas de résultat sinon "0"
Autrement je n'ai pas besoin d'un résultat deux jours près.
A +

--
Envoyez un mail à users+unsubscribe@fr.libreoffice.org pour savoir comment vous désinscrire
Les archives de la liste sont disponibles à http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne pourront pas être 
supprimés

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.