'hour24.15' is right, but you need to apply it to datetime values, not just time values:
data have;
input date yymmdd8. time :time8.0 price;
format date date9. time time8.0;
datalines;
20071025 13:57:30 100.312
20071025 15:37:30 100.064
20071026 11:50:04 100.05
20071026 17:18:09 99.992
20071027 17:12:09 99.998
run;
data need/view=need;
set have;
index_dt=dhms(date,0,0,0)+time;
index_dt=intnx('hour24.15',index_dt,0,'e');
format index_dt datetime20.;
run;
data want (drop=index_dt);
set need;
by index_dt;
if last.index_dt;
time=timepart(index_dt);
run;
... View more