Your objective here should be to have SAS DATETIME variables (not DATE variables for clarification), as explained in your post. Consider that SAS stores DATETIME type variables as numeric representing seconds since 01JAN1960:00:00:00. A SAS DATE variable, a SAS numeric variable as well, represents days since 01JAN1960.
So, you should not want to do a PUT at all, with your conversion code, only the INPUT to convert the character string to a SAS DATETIME numeric variable value. Instead, perform your INPUT function, and also assign a SAS DATETIME FORMAT statement to the variable you are converting from character-format to numeric.
Have a look at the SAS DOCUMENTATION on the SAS support website, where the topic about SAS DATE and DATETIME variables is discussed extensively -- URL link is
http://support.sas.com/ for reference.
Scott Barry
SBBWorks,Inc.