BookmarkSubscribeRSS Feed
shami
Obsidian | Level 7

Hi everyone,

I would like to convert a numeric YYMMDD10. to a numeric Date9.
I have the following code but I'm not getting a result.

DATA WANT;
	SET HAVE;
                 
DATE = INPUT(tdy_date,YYMMDD10.);                              
FROMAT DATE DATE9.;                  
RUN;
1 REPLY 1
ballardw
Super User

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.