And @Jeff_DOC , base on your question and @Tom 's instruction, if your time variable value 1416 and 1950 do represent 14:16 and 19:50, the solution is as follows. Please kindly let me know if it answer your question, @Jeff_DOC ,many thanks!
data timeraw2;
input refdate mmddyy10. idnum
tripd mmddyy10. tript
returnd mmddyy10. returnt;
format refdate tripd returnd mmddyy10.;
datalines;
01/01/2018 636 7/11/2009 1416 7/11/2009 1950
02/01/2018 636 7/11/2009 1416 7/12/2009 1950
;
run;
proc print data=timeraw2;run;
data timeraw2a;
set timeraw2;
tript1=cat(substr(put(tript,4.),1,2),
':',
substr(put(tript,4.),3,2)
);
returnt1=cat(substr(put(returnt,4.),1,2),
':',
substr(put(returnt,4.),3,2)
);
triptnum=input(tript1,time.);
returntnum=input(returnt1,time.);
run;
proc print data=timeraw2a;run;
data timediff2;
set timeraw2a;
tripdt=dhms(tripd,0,0,triptnum);
returndt=dhms(returnd,0,0,returntnum);
diff=returndt-tripdt;
format tripdt returndt datetime19.
diff time12.;
run;
proc print data=timediff2;run;
... View more