BookmarkSubscribeRSS Feed
AmolGothe
Calcite | Level 5

I have a variable called post_time which is in the numeric format with values like 129, 203,252 etc I want to convert this variable into a time variable with values in format like follows:

129 to 13:29

203 to 14:03 etc.

need help for the code on this.

4 REPLIES 4
BrunoMueller
SAS Super FREQ

Hi

You can use the HMS function with the appropriate arguments. See sample below.

How can you know that the 1 in 129 is hour 13?

data have;
  infile cards;
 
input
    post_time :
8.
  ;
  date_s = hms(int(post_time / 100), mod(post_time, 100), 0);
  format date_s time8.;
cards;
129
203
252
;
AmolGothe
Calcite | Level 5

Thanks Bruno

I have a reference dataset (a csv file) and in that reference dataset they have used the post_time variable to calculate the time_variable that i am trying to calculate.

Regards

Amol Gothe

Kurt_Bremser
Super User

Still the question is, how are AM times represented? Seems like the one who created the file did not really engage her/his brain before starting to type. Or you missed some necessary information (maybe AM/PM is stored in another column of the csv?)

RW9
Diamond | Level 26 RW9
Diamond | Level 26

I am afraid it is too vague.  Why does 129 = 13:29 and not 01:29 which would seem more logical, how would 01:29 be represented?  Could it not also be 129 minutes past a certain time value?  Then its just time_point + 129. 

hackathon24-white-horiz.png

The 2025 SAS Hackathon has begun!

It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.

Latest Updates

What is Bayesian Analysis?

Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 4 replies
  • 1369 views
  • 0 likes
  • 4 in conversation