Hello
I want to calculate number of months between two dates and keep it as a sas macro variable.
Do you know how to do it in open code?
%let start=1612;
%let end=1803;
%let date_start=%sysfunc(inputn(&start.,yymmn4.));
%let date_end=%sysfunc(inputn(&end.,yymmn4.));
%let n=%sysfunc(intck('QUARTER',&date_start.,&date_end.)) ;
I get warning
WARNING: An argument to the function INTCK referenced by the %SYSFUNC or %QSYSFUNC macro function is out of range.
I know how to do it in non open code:
Data _null_;
n=intck('QUARTER',&date_start.,&date_end.);
Call Symput ('n',n);
run;
%put &n.;
Macro language is text-only, so quotes are not needed around strings:
%let n=%sysfunc(intck(QUARTER,&date_start.,&date_end.)) ;
If you really want to compute number of months between two dates, I would suggest using MONTH instead of QUARTER as the first argument to INTCK.
You would be much safer using four-digit years. System options can affect whether 1803 is interpreted as 201803 or 191803.
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.