0
votes

Ajout de secondes à la variable de temps

*data final; 
   set final;
 duration = redate-ondate;
 dudays = floor(duration/86400);
 duhrs = floor((duration-(dudays*86400))/3600);
 dumins = floor((duration-(dudays*86400+duhrs*3600))/60);

****************Set up new variable duration**************;
attrib dur length=$11.;
if ae_term ne 'None' and dudays ne . then 
  dur = left(put(dudays,z2.))||':'||left(put(duhrs,z2.))||':'||left(put(dumins,z2.));
else dur = '';
run;*
I have this code but need to calculate seconds and concatenate to dur as I have an adverse event that is less than a minute so won't display. What's the most efficient way to do this?
sas

3 commentaires

Pour être clair, refaire et Ondate sont en réalité DateTime et non dates ?


@bAird correct


La question ne serait-elle pas avec la déclaration si? Spécifiquement cette section, Dudays ne.


3 Réponses :


1
votes

Vous pouvez calculer les secondes restantes, puis ajouter à votre chaîne de temps comme ceci: xxx

une note - en utilisant mettre (Dudays, z2.) suppose votre la durée n'est jamais plus de 99 jours.


0 commentaires

1
votes

OK, cela devrait simplifier les choses un peu: xxx


0 commentaires

0
votes

La différence entre deux valeurs DateTime est un nombre de secondes (il s'agit également d'une valeur DateTime). Vous pouvez utiliser la fonction DatePart () et TimePart () pour diviser au nombre de jours et de secondes depuis minuit. Le format TOD11.2 affichera les secondes dans HH: MM: style Ss.mm. XXX


0 commentaires