Help using Base SAS procedures

character date, expressed 30.02.2002, how to change to numeric

Reply
N/A
Posts: 1

character date, expressed 30.02.2002, how to change to numeric

Hi All,

I have a variable with dates listed in a format of 30.03.2002.

I have tried many options without success.

Here are some commands I have worked with:

new date=input(olddate,date9.);

newdate=input(compress(olddate,'.'),date9.);

newdate= INPUT(compress(olddate),date9.);

format newdate date9.;

Any help would be very much appreciated.

Kind Regards,

Karen

Respected Advisor
Posts: 4,927

Re: character date, expressed 30.02.2002, how to change to numeric

Use format anydtdte :

data test;

dateStr = "30.03.2002";

date = input(dateStr, anydtdte10.);

output;

dateStr = "04.03.2002";

date = input(dateStr, anydtdte10.);

output;

format date date9.;

run;

proc print; run;

PG

PG
Super User
Posts: 7,830

Re: character date, expressed 30.02.2002, how to change to numeric

To force a correct format, I would avoid the anydtdte10. format, as it may convert some values in an unexpected fashion (03/02/2002: March 2nd or February 3rd?).

Instead use

newdate = input(olddate,ddmmyy10.);

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
Ask a Question
Discussion stats
  • 2 replies
  • 217 views
  • 1 like
  • 3 in conversation