Desktop productivity for business analysts and programmers

How to get HH (Hours) FROM DDMMYY HH:MM:SS

Reply
Occasional Contributor
Posts: 13

How to get HH (Hours) FROM DDMMYY HH:MM:SS

Hi,
I want create hour bocket FROM DDMMYY HH:MMSmiley FrustratedS format can you please explain how to do
Data set
Date Count
5/11/2017 1:50 2
5/11/2017 2:30 3
5/11/2017 2:50 8
5/11/2017 1:10 4

Expected
Hour (Bucket) Count
1 6
2 11
Trusted Advisor
Posts: 1,137

Re: How to get HH (Hours) FROM DDMMYY HH:MM:SS

Data have;
input Date:mmddyy10. time:time5. Count;
format date date9. time time5.;
cards;
5/11/2017 1:50 2
5/11/2017 2:30 3
5/11/2017 2:50 8
5/11/2017 1:10 4
;


proc sql;
create table want as select distinct hour(time) as hour, sum(count) as count from have group by hour(time);
quit;

Thanks,
Jag
Super User
Posts: 7,446

Re: How to get HH (Hours) FROM DDMMYY HH:MM:SS

data have;
input _date :ddmmyy10. time :time5. count;
date = _date * 86400 + time;
format date datetime19.;
drop _date time;
cards;
5/11/2017 1:50 2
5/11/2017 2:30 3
5/11/2017 2:50 8
5/11/2017 1:10 4
;
run;

data int;
set have;
hour = intnx('hour',date,0,'begin');
format hour datetime19.;
run;

proc summary data=int nway;
class hour;
var count;
output out=want (keep=hour count) sum(count)=count;
run;

proc print data=want noobs;
run;

Result:

              hour    count

05NOV2017:01:00:00       6 
05NOV2017:02:00:00      11 

I used datetime values because you never can be sure that you'll only deal with one day.

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
Ask a Question
Discussion stats
  • 2 replies
  • 124 views
  • 0 likes
  • 3 in conversation