Datetime to Date conversion question

Reply
Contributor
Posts: 21

Datetime to Date conversion question

I am trying to convert datetime data to date data (Date9. format). The data was imported from MS Access (.mdb file created in Access 97). I've tried using

data mylib.datanew;

set mylib.dataold;

informate birthdate date9.;

format birthdate date9.;

run;

I get 1.48867E9 instead of 05MAR2007. The log gives the following message ERROR: There was a problem with the format so BEST. was used. Any help appreciated Smiley Happy

Super Contributor
Posts: 1,636

Re: Datetime to Date conversion question

try:

new=datepart(old-variable);

Contributor
Posts: 21

Re: Datetime to Date conversion question

I tried this and now SAS has the new variable formatted as Best which is not any sensible date format. Could it be a problem with the SAS default formatting or is it something to do with the MS Access file format?

Thanks!

PROC Star
Posts: 7,363

Re: Datetime to Date conversion question

Did you assign a format to the new variable (e.g., date9.)?

Respected Advisor
Posts: 4,651

Re: Datetime to Date conversion question

You can even use

birthdate = datepart(birthdate);

if your objective is simply to remove the hour part from a date in an Access database table, you may leave the variable as a datetime value and use:

format birthdate datetime20.;

birthdate = intnx("DTDAY",birthdate,0);

PG

PG
Contributor
Posts: 21

Re: Datetime to Date conversion question

Thanks for all of your "codes of wisdom". I finally have figured out what works.

data mylib.data;                                                                                                                

set mylib.data;                                                                                                                      

birthdate=datepart(birthdate);                                                                                                         

format birthdate date9.;                                                                                                               

run;

This returns birthdate values in the format 01JAN1960.

Thanks again Smiley Happy

Ask a Question
Discussion stats
  • 5 replies
  • 706 views
  • 0 likes
  • 4 in conversation