bonjour,
est ce que je peut faire la différence entre les années de deux dates pour obtenir l'age ?
merci
bonjour,
est ce que je peut faire la différence entre les années de deux dates pour obtenir l'age ?
merci
oui, il suffit de faire une recherche sur le forum pour plus d'info
ou la FAQ : http://oracle.developpez.com/faq/?page=3-2#datediff
moi j'aime bien employerEnvoyé par jessy212
car ça marche même pour ceux qui sont nés le dernier jour du mois de février
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 trunc((to_char(d,'SYYYYMMDD') - to_char(date_de_naissance,'SYYYYMMDD'))/10000)
En effet !Envoyé par Fred_D
J'ajouterais aussi des TO_NUMBER pour éviter toute conversion de type implicite :
Qu'en pensez-vous ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part TRUNC((TO_NUMBER(TO_CHAR(d,'SYYYYMMDD')) - TO_NUMBER(TO_CHAR(date_de_naissance,'SYYYYMMDD'))) / 10000)
rbaraer
exEnvoyé par solange44
20060929 - 19710322 = 350607
350607 / 10000 = 35
j'ai donc 35 ans.
j'aurais aussi pu faire
ce qui est éventuellement plus lisible
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 select trunc(to_number(to_char(sysdate,'SYYYY.MMDD'),'9999.9999') - to_number(to_char(date '1971-03-22','SYYYY.MMDD'),'9999.9999')) AGE from dual; AGE ---------- 35
Une autre solution :
select round((TO_NUMBER(TO_CHAR(Madate1,'J')) - TO_NUMBER(TO_CHAR(Madate2,'J'))) / 365)
from Matable1
Moi mon problème c'est que ça marche très bien qd je lance la requête sur un client ORACLE (Eclipse pr ma part) mais lorsque je fais ma requête dans un module java avec hibernate, ça ne fonctionne pas.
Après avoir bidouiiler ma requête , j'ai l'impression que c'est le TRUNC et le ROUND qu'hibernate n'aime pas.
Alors si quelqu'un pouvait me confirmer mon diagnostic
Merci
chère solange,
ma solution a le grand avantage sur MONTHS_BETWEEN(D1,D2)/12 de gérer les personnes qui sont nées le dernier jour du mois de février. si tu divises par 365, toute personne agée de 4 ans aura son anniversaire un jour trop top, non?
tout de bon
laurent
Bjr Laurent,
Effectivement ta solution est la plus logique (je la garde précieusement). Le pb c'est que ni l'une ni l'autre ne passe dans mon programe java. Le problème est autre,C'est pourquoi , j'ai créé une autre discussion sur le forum java.
http://www.developpez.net/forums/showthread.php?t=217044
Merci Bcp
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager