Help using Base SAS procedures

Converting numeric dates to SAS dates

Reply
N/A
Posts: 0

Converting numeric dates to SAS dates

I have been exploring the best way to convert numeric dates in the form 19990125 (YYYYMMDD) to SAS date values.

So far, I have come up with the following solution:
For numeric dates in the form 20050101 (YYYYMMDD): input(put(TABLE.DATE_COL ,8.),YYMMDD10.)
For numeric dates in the form 200501 (YYYYMM): input(put(TABLE.DATE_COL ,6.)||'01',YYMMDD10.)

Does anyone know of a better/more efficient way of doing this? Many dates from oracle or db2 come in this format and as often as SAS imports data from these dbms, I would think there is a better way.

Thanks in advance.
Super Contributor
Super Contributor
Posts: 3,174

Re: Converting numeric dates to SAS dates

Recommend searching the SAS support http://support.sas.com/ website - here is a useful Google advanced search argument which yielded some DOC and technical/conference reference matches:

converting oracle dates site:sas.com


Scott Barry
SBBWorks, Inc.
Respected Advisor
Posts: 3,899

Re: Converting numeric dates to SAS dates

I believe SAS does a pretty good job in converting dates from a DBMS.
But if the dates in the DMBS are stored as characters - well: then you store them as well as characters in SAS or you tell SAS how to convert these characters.

Only because there are digits in this character columns doesn't make it numeric (anyway in most DBMS there are special types for dates).

But what about this:
data _null_;
chardate='20050912';
numdate=input(chardate,yymmdd8.);
put numdate yymmdds10.;

chardate='200509';
numdate=input(chardate,yymmn6.);
put numdate yymms7.;

run;
Ask a Question
Discussion stats
  • 2 replies
  • 117 views
  • 0 likes
  • 3 in conversation