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.
Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. Registration is now open through August 30th. Visit the SAS Hackathon homepage.
Register today!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.