If you want to count by months then use DATE values and not digit strings.
%macro dt(start,end);
%local date_start date_end offset date;
%let date_start=%sysfunc(inputn(&start,yymmn6.));
%let date_end=%sysfunc(inputn(&end,yymmn6.));
%do offset = 0 %to %sysfunc(intck(month,&date_start,&date_end));
%let date=%sysfunc(intnx(month,&date_start,&offset),yymmn6.);
%put &=offset &=date ;
%end;
%mend ;
%dt(start=201910,end=202003);
Results:
OFFSET=0 DATE=201910 OFFSET=1 DATE=201911 OFFSET=2 DATE=201912 OFFSET=3 DATE=202001 OFFSET=4 DATE=202002 OFFSET=5 DATE=202003
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.