BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
buddha_d
Pyrite | Level 9
SAS gurus,
How can I read time (0233 or 1433) in sas?
HHMM. Is not working and I would like to see 24hrminute format
Have 0233 This is am
0233 This is pm

Want 0233
1433
1 ACCEPTED SOLUTION

Accepted Solutions
Kurt_Bremser
Super User

Adapt the number so that it fits the time. informat, and use the index() function to determine pm and am. Set the hour either by adding 12*360, or use the intnx() function:

data want;
input timestr $25.;
time_num = input(substr(timestr,1,2) !! ':' !! substr(timestr,3,2),time5.);
if index(timestr,'pm') > 0 then time_num = intnx('hour',time_num,12,'s');
format time_num time8.;
cards;
0233 This is am
0233 This is pm
;
run;

View solution in original post

2 REPLIES 2
Kurt_Bremser
Super User

Adapt the number so that it fits the time. informat, and use the index() function to determine pm and am. Set the hour either by adding 12*360, or use the intnx() function:

data want;
input timestr $25.;
time_num = input(substr(timestr,1,2) !! ':' !! substr(timestr,3,2),time5.);
if index(timestr,'pm') > 0 then time_num = intnx('hour',time_num,12,'s');
format time_num time8.;
cards;
0233 This is am
0233 This is pm
;
run;
buddha_d
Pyrite | Level 9

Thanks KurtBremser, it works.

 

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

How to Concatenate Values

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.

SAS Training: Just a Click Away

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

Browse our catalog!

Discussion stats
  • 2 replies
  • 1330 views
  • 0 likes
  • 2 in conversation