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?
Thank you @svh
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
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!
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.
Ready to level-up your skills? Choose your own adventure.