Suggest you input the field using $CHARnn. and then using the INPUT function, attempt to convert (or use the NOT ANYALPHA() function, possibly, to validate for all numeric and then perform the INPUT. Still, in case the conversion does not work, I would suggest resetting the SAS reserved variable _ERROR_=0 to avoid the nasty warning messages in the SAS log, as well, after you attempt the INPUT -- and also test the "date" numeric variable for a missing condition, which will tell you what happened with the INPUT.
You should do some diagnostic testing with the statement below - at various places in your SAS DATA step logic to better understand your input:
PUTLOG '>DIAG99' / _ALL_;
Scott Barry
SBBWorks, Inc.