У меня есть ниже макро переменная с yymmn6. формат.
%let a=201501;
Я хочу иметь новую макропеременную b на основе макроса a с '2015-01-01' (формат teradata). Так что я могу вызвать макрос б в где условие
Я попробовал приведенные ниже коды.
%let b=%sysfunc(put(&a.,year4.)||'-'||put(&a,month2.)||'-01'||"'");
%put &b.
Результат: ВАРИАНТЫ NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;
ОШИБКА: Ожидается закрывающая круглая скобка после вызова макрофункции.
61
62
63% let b =% sysfunc (put (& a., Year4.) || '-' || put (& a, month2.) || '-01' || "'");
64% положено и б.
65
%let b=%sysfunc(putn(&a.,yymmn6.),yymmdd10.);
Результат:
% let b =% sysfunc (putn (& a., Yymmn6.), Yymmdd10.);
64% положено и б.
65
66 ВАРИАНТЫ NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;
251203 ВАРИАНТЫ НЕ УКАЗАНЫ NOSTIMER NOSOURCE NOSYNTAXCHECK
%let a=201501;
data _null_;
date=input("&a.",yymmn6.);
call symput('date1' , "'"||put(date,year4.)||'-
'||put(date,month02.)||'-01'||"'");
run;
%put &date1.;
для вышеуказанных данных ноль результат, который я получаю
68% положено & дата1 .;
'2015-1-01'
Итак, все, что я пытаюсь сделать, это конвертировать 201501 в 2015-01-01 и искать решение, используя макрос% let, не входящий в symppt