INPUT function requires text. If you use a numeric value then SAS will do an automatic conversion from number to text using a best format that will have leading spaces and not match the YYMMDD10 expected values.
So control the conversion with a PUT function call
DATA WANT;
tdy_date=20120712;
DATE = INPUT(put(tdy_date,8.),YYMMDD10.);
ForMAT DATE DATE9.;
RUN;
If your data is clean you could re-use the variable name tdy_date and not create a new variable.