Help using Base SAS procedures

Failed to change character into date in SAS

Reply
Occasional Contributor
Posts: 5

Failed to change character into date in SAS

I imported 5 excel files into SAS and there are some dates formatted as 8/3/1989 originally and formatted into 03Aug1989 (DATE9.) which is what I really want. However, on 1 file the dates failed to converted into DATE9. and it is read as $CHAR10 when I read the log. I tried several ways to reformat it into DATE9 but failed.

  1. I tried to change all informat/format/input into DATE9. instead of $CHAR10 but failed, the results are all empty (.)
  2. I tried  DateNew=input (Date,DATE9.);   but it didn't work either.

Any comment?

Thanks!

Super User
Posts: 19,851

Re: Failed to change character into date in SAS

Your second method should be correct.

One thought is trailing spaces so perhaps a compress or trim might help?

DateNew=input (compress(Date),DATE9.);

Super User
Posts: 11,343

Re: Failed to change character into date in SAS

HOW did you get the data from Excel? Proc Import has a number of issues with Excel depending on what people put in the Excel file.

Also, look at the cell level formats in Excel. If they were set as character and the value entered as text '8/3/1989 they would likely come in as text.

If the values are 8/3/1989 then you want to use

DateNew = input(date, mmddyy10.);

and

Format DateNew date9.;

when use input(date,date9.) SAS expects the text value to look like 03Aug1989 not 8/3/1989.

Ask a Question
Discussion stats
  • 2 replies
  • 278 views
  • 0 likes
  • 3 in conversation