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+
--
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.