What happens when you run something like this:
DATA have;
set have;
birth_date_formatted= input(birth_datetime_formatted,date9.);
RUN;
Is that the variable BIRTH_DATETIME_FORMATTED, if it is numeric gets turned into a string of digits. If the value was a datetime like 21SEP96:00:00:00 then the digits would be 1158883200, which in no way resembles a DATE9. format, for use by the input function before the informat is attempted.
Seldom does implicit conversion of a numeric value get converted to a string that Input requires for a given numeric value. One example:
data example;
x=123;
y= input(x,8.);
run;
Y in this example will be missing. That is because before the informat 8. is used to read the value of X is turned into a string using the BEST12 format and is right justified. So there are nothing but spaces in the first 8 positions to read.
If you are going to attempt to use INPUT with a numeric variable it is up to you to convert the number into a string you know the content. Example
data example;
x=123;
y= input(put(x,best12. -L),8.);
run;
The Put function creates a string, the format controls the appearance and the option -L left justifies the result so the leading spaces don't become an issue.
It is better to use the functions such as DATEPART or MDY or DHMS or HMS to covert numeric date and time values around.
https://communities.sas.com/t5/SAS-Communities-Library/Working-with-Dates-and-Times-in-SAS-Tutorial/... has a PDF with much information about working with dates and such.