Since the text (!) inserted by the macro processor is not enclosed in quotes, and constitutes a valid number according to SAS syntax rules, the variable on the left of the assignment is created as numeric.
You want 230524 to be handled as a date; which date? Is it 2023-05-24, 2024-05-23, 1924-05-23, or any other possible date built with those numbers between the years 1582 and 9999? I hope you realize the plain stupidity of using 2-digit years now. Also google "Y2K", if you're younger than 25.
To store a text string as a date, you need to convert it to such:
%let sysparm = 20230524;
data a;
new = input("&sysparm.",yymmdd8.);
format new yymmdd10.;
run;
... View more