data demo;
length dt $9;
dt='mar2010';output;
dt='2007';output;
dt='1feb2010';output;
dt='';output;
dt='32010';output;
dt='142010';output;
run;
i have to separate month,date,year from above dataset,i tried
year= SUBSTR(TRIM(dt),LENGTH(TRIM(dt))-3);
month=SUBSTR(TRIM(dt),LENGTH(TRIM(dt))-6,3);
to get year and month values but i m not getting date value with this logic.
any other way to separate it?
thanks
data demo;
length dt $9;
dt='mar2010';output;
dt='2007';output;
dt='1feb2010';output;
dt='';output;
dt='32010';output;
dt='142010';output;
run;
data want;
set demo;
format date date9.;
if length(dt) eq 4 then date=mdy(1,1,dt);
else if length(dt) eq 5 then date=mdy(1,first(dt),substr(dt,2));
else if length(dt) eq 6 then date=
mdy(1,substr(dt,1,2),substr(dt,3));
else date=input(dt,anydtdte9.);
month=month(date);
day=day(date);
year=year(date);
if length(dt) eq 7 then call missing(day);
else if length(dt) in (5,6) then call missing(month);
else if length(dt) eq 4 then do;
call missing(month);
call missing(day);
end;
run;
Art, CEO, AnalystFinder.com
What month, day and year to you expect to get from each of the following:
mar2010
2007
32010
142010
Art, CEO, AnalystFinder.com
for 32010 day=3 month= missing and yr =2010
for mar2010 day=missing month=march yr=2010
for 2007 day=missing month=missing yr=2007
for142010 day=14 month=missing yr=2010
data demo;
length dt $9;
dt='mar2010';output;
dt='2007';output;
dt='1feb2010';output;
dt='';output;
dt='32010';output;
dt='142010';output;
run;
data want;
set demo;
format date date9.;
if length(dt) eq 4 then date=mdy(1,1,dt);
else if length(dt) eq 5 then date=mdy(1,first(dt),substr(dt,2));
else if length(dt) eq 6 then date=
mdy(1,substr(dt,1,2),substr(dt,3));
else date=input(dt,anydtdte9.);
month=month(date);
day=day(date);
year=year(date);
if length(dt) eq 7 then call missing(day);
else if length(dt) in (5,6) then call missing(month);
else if length(dt) eq 4 then do;
call missing(month);
call missing(day);
end;
run;
Art, CEO, AnalystFinder.com
Thank you sir
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.