BookmarkSubscribeRSS Feed
dht115
Calcite | Level 5

Hello, 

 

I do need to change date in YYYY-MM-DD format by using the macro value. 

%LET start_date = '01Feb2022'd;
%let start = (&start_date., yymmdd10.);
%put &start.;

start should be 2022-02-01. 

3 REPLIES 3
PaigeMiller
Diamond | Level 26

The macro processor needs additional instruction in order to work with dates. This is the %SYSEVALF function and the %SYSFUNC function.

 

Please note for clarity, now and in the future: your title implies you are working with macros. You are not working with macros. You are working with macro variables, which is something different than a macro. Do not use "macro" to refer to "macro variables".

 

%let start_date = %sysevalf('01feb2022'd);
%let start = %sysfunc(putn(&start_date, yymmdd10.));
%put &=start;

 

--
Paige Miller
Tom
Super User Tom
Super User

No need to add the %SYSEVALF() if you are going to use the value with %SYSFUNC().  Unlike the %EVAL() macro function used for most macro code evaluations the SAS data step functions know how to interpret literals directly.

238   %let start_date = '01Feb2022'd;
239   %let start = %sysfunc(putn(&start_date., yymmdd10.));
240   %put &=start_date &=start;
START_DATE='01Feb2022'd START=2022-02-01

 

Reeza
Super User

Starting day of month for current month in desired format

 

 1          OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;
 SYMBOLGEN:  Macro variable _SASWSTEMP_ resolves to /home/fkhurshed/.sasstudio/.images/9a0e017f-022a-4352-9956-2f959c2997c7
 SYMBOLGEN:  Some characters in the above value which were subject to macro quoting have been unquoted for printing.
 SYMBOLGEN:  Macro variable GRAPHINIT resolves to GOPTIONS RESET=ALL GSFNAME=_GSFNAME;
 68         
 69         %let start = %sysfunc(intnx(month, %sysfunc(today()), 0, b), yymmdd10.);
 70         %put &start.;
 SYMBOLGEN:  Macro variable START resolves to 2022-02-01
 2022-02-01

 

SAS Innovate 2025: Register Now

Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
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
  • 4570 views
  • 3 likes
  • 4 in conversation