Я пишу программу в Proc SQL. программа принимает различные входные файлы, имена которых меняются от месяца к месяцу (например, myfile_YYYY_MM или mytable_YYYYMM или mydata_YY_M).
Большая часть программы теперь является динамической, и пользователю предлагается ввести отчетную дату через подсказку при выполнении программы.
«Дата подсказки» (&Rep_Date.) в коде имеет формат DD MON YYYY (31 мая 2018 г.), и мне нужно настроить одну макропеременную, преобразующую это значение в формат YYMMn6 (т.е. 201805).
Синтаксис выглядит следующим образом:
%let Period = input("&Rep_Date."d,YYMMN.);
Это работало при попытке создать переменную d9 и для создания переменной месяца/года, например:
%let date = "&Rep_Date."d; /*Last day execution month*/
%let year = %sysfunc(year("&Rep_Date."d));
%let month = %sysfunc(month("&rep_Date."d));
почему-то тоже самое не получается при попытке отформатировать дату в ГГММn6.
Я также попытался создать переменную «Период» во временной таблице SAS, как это, но снова не повезло:
Data dates;
Period = input((&Rep_date.,6.), yymmn6.);
format Period yymmn6.;
Run;
Любые идеи о том, где я ошибаюсь?