Увеличение макропеременной в предыдущем месяце, в начале месяца - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть макропеременная в следующем формате.Эта переменная называется mindt.Мне нужно получить предыдущий месяц и начало этого месяца.Так, например, ниже 2017-07-01.Мне нужно 2017-06-01 в макросе.Как мне это сделать?У меня нет кода, чтобы сделать это.Ниже приведен код.

2017-07-01

%LET mindt=2017-07-01;
%PUT &mindt;

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

Как насчет однострочного

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
0 голосов
/ 21 февраля 2019

Решил, спасибо за игру.Но брать кредит не собираюсь, коллега мне помог.

    %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.);
...