%LET BACK_DATE = '20180621';
* 날짜 계산을 위하여 '20180621'을 날짜로 변경;
%put %SYSFUNC(INPUTN(%SYSFUNC(SUBSTR(&BACK_DATE,2,8)),YYMMDD8.));
* 1개월 전 동일일자(날짜형태);
%put %SYSFUNC(INTNX(MONTH,%SYSFUNC(INPUTN(%SYSFUNC(SUBSTR(&BACK_DATE,2,8)),YYMMDD8.)),-1,SAME));
* 1개월 전 초일자(날짜 포맷 적용);
%put %SYSFUNC(PUTN(%SYSFUNC(INTNX(MONTH,%SYSFUNC(INPUTN(%SYSFUNC(SUBSTR(&BACK_DATE,2,8)),YYMMDD8.)),-1,BEGINNING)),YYMMDDN8.));
* 1개월 전 동일일자(날짜 포맷 적용);
%put %SYSFUNC(PUTN(%SYSFUNC(INTNX(MONTH,%SYSFUNC(INPUTN(%SYSFUNC(SUBSTR(&BACK_DATE,2,8)),YYMMDD8.)),-1,SAME)),YYMMDDN8.));
* 매크로 변수 할당;
%LET DATE_VAR = %SYSFUNC(PUTN(%SYSFUNC(INTNX(MONTH,%SYSFUNC(INPUTN(%SYSFUNC(SUBSTR(&BACK_DATE,2,8)),YYMMDD8.)),-1,SAME)),YYMMDDN8.));
DATA BACK;
CHAR_DATE = "&DATE_VAR"; * 문자형 변수;
NUM_DATE = &DATE_VAR ; * 수치(날짜)형 변수;
RUN;
* Note: Instead of INPUT and PUT, which are not available with %SYSFUNC and %QSYSFUNC, use INPUTN, INPUTC, PUTN, and PUTC.
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.