cancel
Showing results for 
Search instead for 
Did you mean: 

Write a string of the systime variable

SOLVED
ramgouveia
Obsidian | Level 7
Solved!

Write a string of the systime variable

I have the following code:

 

%let dt = &systime;
%let dhour = substr(&dt.,1,2);
%let dminute = substr(&dt.,4,2);
%put NOTE : system data is &dhour. &dminute. ;

which produced the following result:

NOTE : system data is substr(10:44,1,2) substr(10:44,4,2)

 

The result I want is:

NOTE : system data is 10 44

 

Can you help me to correct the code?

1 ACCEPTED SOLUTION

Accepted Solutions
svh
Lapis Lazuli | Level 10
Lapis Lazuli | Level 10
Solution

Re: Write a string of the systime variable

Since the SUBSTR() function takes a macro variable as an argument, use %SUBSTR().

View solution in original post

3 REPLIES 3
svh
Lapis Lazuli | Level 10
Lapis Lazuli | Level 10
Solution

Re: Write a string of the systime variable

Since the SUBSTR() function takes a macro variable as an argument, use %SUBSTR().
ramgouveia
Obsidian | Level 7

Re: Write a string of the systime variable

Thank you @svh 

Tom
Super User
Super User

Re: Write a string of the systime variable

The macro processor is just a text pre-processor.  It looks for the & and % triggers to see where it needs to take action.

In your code you are only use the & trigger.  So the string substr is not modified by the macro processor.

 

You probably want to use the macro function %SUBSTR() or  the macro function %SCAN() instead.

555  %let dt=&systime;
556  %let dhour=%substr(&dt,1,2);
557  %let dminute=%substr(&dt,4,2);
558  %put &=systime &=dt &=dhour &=dminute;
SYSTIME=09:44 DT=09:44 DHOUR=09 DMINUTE=44