*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?
3 Réponses :
Vous pouvez calculer les secondes restantes, puis ajouter à votre chaîne de temps comme ceci: une note - en utilisant mettre (Dudays, z2.) code> suppose votre la durée n'est jamais plus de 99 jours. P> p>
OK, cela devrait simplifier les choses un peu:
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.
Pour être clair,
refaire code> et
Ondate code> sont en réalité DateTime i> et non dates i>?
@bAird correct
La question ne serait-elle pas avec la déclaration si? Spécifiquement cette section,
Dudays ne. Code>