我有以下格式的宏变量。此变量称为小记。我需要上个月和该月初。因此,例如,下面是2017-07-01。我需要2017年6月1日的宏变量。我该怎么做呢?我没有执行此操作的代码。下面是一些代码。
2017-07-01
%LET mindt=2017-07-01;
%PUT &mindt;
答案 0 :(得分:1)
单线的情况如何
86 %LET MINDT = 2017-07-01;
87 %put NOTE: MINDT(&mindt) Minus 1 month %sysfunc(intnx(MONTH,%sysfunc(inputn(&mindt,YYMMDD,10)),-1),yymmdd10);
NOTE: MINDT(2017-07-01) Minus 1 month 2017-06-01
答案 1 :(得分:0)
解决了,感谢您的参与。不过,一位同事帮了我忙。
%LET MINDT = 2017-07-01;
%MACRO TEST(INPUT_DATE);
%PUT DOING THIS FOR MINDT OF &INPUT_DATE.;
%LET MINDT_AS_DATE = %SYSFUNC(INPUTN(&INPUT_DATE., YYMMDD10.));
%LET MINDT_AS_DATE_MINUS_ONE = %SYSFUNC(INTNX(MONTHS, &MINDT_AS_DATE., -1));
%LET MINDT_MINUS_ONE = %BQUOTE(')%SYSFUNC(PUTN(&MINDT_AS_DATE_MINUS_ONE., YYMMDD10.))%BQUOTE(');
%PUT MINUS ONE IS &MINDT_MINUS_ONE.;
%MEND;
%TEST(&MINDT.);