Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > Débutez
Débutez Forum concentrant les premières questions que l'on se pose en tant que débutant
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/02/2011, 15h40   #1
Invité de passage
 
Rémi
Inscription : février 2011
Messages : 4
Détails du profil
Informations personnelles :
Nom : Rémi

Informations forums :
Inscription : février 2011
Messages : 4
Points : 0
Points : 0
Par défaut Formats de dates (DATETIME19.) : différence entre deux dates

Bonjour à vous,

J'ai deux variables dat1 et dat2 je cherche à avoir la durée en année entre ces deux dates sous la forme d'une troisième ageR.

Les deux variables dat1 et dat2 sont au format "DATETIME19."

Que puis-je faire ?

Merci d'avance !
Slixounet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2011, 16h06   #2
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 467
Détails du profil
Informations personnelles :
Nom : Homme Olivier Decourt
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 1 467
Points : 2 823
Points : 2 823
Bonjour Rémi.
Tes deux dates sont des datetimes, c'est à dire des dates stockées en nombre de secondes depuis le 01/01/1960 à minuit.
Pour les manipuler plus aisément, tu devrais leur appliquer la fonction DATEPART pour récupérer une date SAS en nombre de jours depuis le 01/01/1960.
Pour le nombre d'années écoulées entre deux dates, le plus précis est la fonction YRDIF.
Code :
ageR = YRDIF(DATEPART(dat1), DATEPART(date2), "ACT/ACT") ;
Tu peux aussi, plus simplement, soustraire les années l'une à l'autre.
Code :
ageR = YEAR(DATEPART(dat1)) - YEAR(DATEPART(dat2)) ;
Bon courage.
Olivier
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2011, 16h34   #3
Invité de passage
 
Rémi
Inscription : février 2011
Messages : 4
Détails du profil
Informations personnelles :
Nom : Rémi

Informations forums :
Inscription : février 2011
Messages : 4
Points : 0
Points : 0
Pour l'instant j'avais utilisé

Code :
1
2
3
4
DATA date;
SET ANALYSE.Alfa9801;
AgeR= (dat1-dat2)/31557600;
run;
Mais ta solution est bien plus propre et répond mieux à ce que je cherche.
Je me suis d'ailleurs rendu compte que certains de mes patients avaient reçu leur traitement avant leur naissance !!

Merci !!
Slixounet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2011, 16h51   #4
Membre Expert
 
Avatar de MEGAMIND2
 
Homme Brice Beare
Paris
Inscription : janvier 2011
Messages : 956
Détails du profil
Informations personnelles :
Nom : Homme Brice Beare
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Paris

Informations forums :
Inscription : janvier 2011
Messages : 956
Points : 1 366
Points : 1 366
Citation:
Envoyé par Slixounet Voir le message
Je me suis d'ailleurs rendu compte que certains de mes patients avaient reçu leur traitement avant leur naissance !!

Merci !!
Dans une autre vie peut être
MEGAMIND2 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 28/02/2011, 16h49   #5
Invité de passage
 
Rémi
Inscription : février 2011
Messages : 4
Détails du profil
Informations personnelles :
Nom : Rémi

Informations forums :
Inscription : février 2011
Messages : 4
Points : 0
Points : 0
Par défaut Formats de dates (DATETIME19.) : différence entre deux dates

Bonjour,
Un grand merci à vous.
Slixounet est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h02.


 
 
 
 
Partenaires

Hébergement Web