HI!
I have numeric values in time variables using military time. When I try the HHMM. the output is not correct
My data values look like this
Time |
120 |
2130 |
10 |
1128 |
23 |
50 |
Want to look like this:
Time | Want |
120 | 01:20 |
2130 | 21:30 |
10 | 00:10 |
1128 | 11:28 |
23 | 00:23 |
50 | 00:50 |
Any suggestion appreciated!!
Before you can use a time format, you have to convert the numbers to date-time numbers.
Something like this:
time2=hms(floor(time/100),mod(time,100),0); /* Convert time to hours and minutes using the hms function */ format time2 hhmm5.;
Probably a slicker way, but this should work:
data have;
input have;
timepad = strip(put(have, z4.));
want = hms(substr(timepad, 1, 2), substr(timepad, 3, 2), 0);
format want time5.;
datalines;
120
2130
10
1128
23
50
;
Before you can use a time format, you have to convert the numbers to date-time numbers.
Something like this:
time2=hms(floor(time/100),mod(time,100),0); /* Convert time to hours and minutes using the hms function */ format time2 hhmm5.;
Mine isn't smart, but fun though-
data have;
input time;
datalines;
120
2130
10
1128
23
50
;
data want;
set have;
new_time=cats(reverse(substr(reverse(time),3)),':',substr(time,length(time)-1));
if length(new_time)=3 then new_time=cats('00',new_time);
run;
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.