SAS хранит значения DATE, TIME и DATETIME в виде чисел. Функция DATEPART (), которую вы пытаетесь использовать, предназначена для преобразования значений DATETIME в значения DATE. Но ваша исходная переменная является символом длиной 5. (ФОРМАТЫ - это просто инструкции о том, как отображать значения).
Таким образом, вашей первой проблемой будет преобразование строки в значение DATE. Затем вы можете взять первые 5 символов ДАТЫ. отформатируйте и сохраните его в исходной переменной или в другой переменной. Предполагая, что значения месяца / дня относятся к текущему году, и у вас есть только эти два стиля строк, это один из способов создания даты, а также строка из 5 символов.
data want;
set have ;
if index(date,'/') then date_ck = input(cats(date,'/',year(today())),mmmddyy10.);
else date_ck = input(cats(date,year(today())),date9.);
format date_ck date9.;
new_date = substr(put(date_ck,date9.),1,5);
run;