## change numeric values to sas time format

Solved
Regular Contributor
Posts: 182

# change numeric values to sas time format

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!!

Accepted Solutions
Solution
‎08-07-2017 12:07 PM
Posts: 3,066

## Re: change numeric values to sas time format

[ Edited ]

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.;```

--
Paige Miller

All Replies
PROC Star
Posts: 311

## Re: change numeric values to sas time format

Probably a slicker way, but this should work:

``````data have;
input have;
format want time5.;
datalines;
120
2130
10
1128
23
50
;
``````
Solution
‎08-07-2017 12:07 PM
Posts: 3,066

## Re: change numeric values to sas time format

[ Edited ]

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.;```

--
Paige Miller
PROC Star
Posts: 1,844

## Re: change numeric values to sas time format

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;

☑ This topic is solved.