BookmarkSubscribeRSS Feed
quanzhou22
Calcite | Level 5

Can anyone help me to figure out the code that can change a time variable in SAS from HH : MM : SS.SS to HHMM?

like 20:35:00.00 to 2035

Thanks very much!

3 REPLIES 3
Reeza
Super User

I don't think there's a format, but you can easily create your own using proc format.

 

proc format;
  picture mytime other='%0H%0M' (datatype=time);
run;

 

quanzhou22
Calcite | Level 5

Thanks for your answer. 

I figured it out just now and it works for my assignment.

Here is the code:

 

data time;
set Slice;
OrderTimeNewPart1=substrn(OrderTime,1,2);
OrderTimeNewPart2=substrn(OrderTime,4,2);
OrderTimeNewPart=trim(OrderTimeNewPart1)||OrderTimeNewPart2;
OrderTimeNew=prxchange('s/^0+//o',-1,OrderTimeNewPart);
drop OrderTimeNewPart1 OrderTimeNewPart2 OrderTimeNewPart;
run;

Reeza
Super User

Your variable is now text. Depending on what you want that may be fine, but in general I find it easier to keep them as date/time/datetime for analysis and calculations later on. 

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
  • 3 replies
  • 1201 views
  • 1 like
  • 2 in conversation