BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
EarlyCode
Fluorite | Level 6

I have a report that has a time value in excel formatted to MM: SS. (01:32; 00:56, etc)

 

When imported, they import as a text string. I need to convert it into a value that can be used in calculations. I've tried a couple of different methods to convert the text string. (Including changing the string to HH:MM: SS format) But every method I've tried to use to convert it returns null value and the Invalid numeric data, Time='00:26' error.

 

Can someone help me with the correct method to convert a time text string to a value that can be used for calculations?

1 ACCEPTED SOLUTION

Accepted Solutions
Astounding
PROC Star

If you don't mind a message about conversion on the log, you could shorten your equations to:

 

myTime = 60* input(myTimeString, 2.) + scan(myTimeString, 2, ':');

View solution in original post

6 REPLIES 6
PGStats
Opal | Level 21

myTime = input(myTimeString, time.);

PG
EarlyCode
Fluorite | Level 6
Returns numerical values, that aren't in time format. If a second Format myTime Time.; is run it will show it in a time format, but the seconds become minutes. So 00:08 becomes 480 which SAS reads as 0:08:00 instead of 0:00:08.

A work around I've just come up with is
min = input(substr(myTimeString,1,2),2.);
sec = input(substr(myTimeString,4,2),2.);
myTime = (min*60) + sec;
FORMAT myTime Time.;

Which does convert 00:08 to 0:00:08. But seems like a lot of extra steps that I'm not sure if it's needed.
PGStats
Opal | Level 21

myTime = input(myTimeString, time.);

format myTime time5,;

PG
EarlyCode
Fluorite | Level 6
Still converts seconds to minutes.
Astounding
PROC Star

If you don't mind a message about conversion on the log, you could shorten your equations to:

 

myTime = 60* input(myTimeString, 2.) + scan(myTimeString, 2, ':');

EarlyCode
Fluorite | Level 6
This works with fewer steps. Thank you,
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
  • 6 replies
  • 2375 views
  • 0 likes
  • 3 in conversation