Step 1: write code (without any macro function at all) that successfully converts one variable in one dataset. Once you have that working, replace variable and/or dataset names with macro variables and set those before the step. Once that works, wrap it in a macro where you supply the macro variables as parameters.
Everything else is just inviting pain for yourself.
I looks like you are trying to do something like this:
%let oldname= datetime_variable;
%let newname= date_variable;
data new ;
set old;
&newname = datepart(&oldname);
format &newname date9.;
run;
Since both a DATE and a DATETIME variable are numeric you could set both macro variables to the same dataset variable.
Nearly 200 sessions are now available on demand with the SAS Innovate Digital Pass.
Explore Now →Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.