I looking to format a date/time field as an interger in the format of YYYYMM. Below works, but I cannot figure out how to remove the day part (DD). Thanks.
input(put(datepart(r.MyDate),yymmddn8.),8.) as MyDateFormatted format=8.
Example:
MyDate=10MAR2017:13:29:57.000
Need=201703 as numeric
There's a format for that 😉
YYMMN6 Format, either apply the format or use PUT() with DATEPART().
data test;
dt=dhms('01Jan2017'd, 5, 2, 20);
format dt datetime20.;
date_formatted=datepart(dt);
format date_formatted yymmn6.;
x=put(datepart(dt), yymmn6.);
y=input(x, 8.);
run;
ods select variables;
proc contents data=test;
run;
proc print data=test;
run;
There's a format for that 😉
YYMMN6 Format, either apply the format or use PUT() with DATEPART().
data test;
dt=dhms('01Jan2017'd, 5, 2, 20);
format dt datetime20.;
date_formatted=datepart(dt);
format date_formatted yymmn6.;
x=put(datepart(dt), yymmn6.);
y=input(x, 8.);
run;
ods select variables;
proc contents data=test;
run;
proc print data=test;
run;
You can use the following format to convert a date to YYMM or YYYYMM. For example: 12-03-2018 to 201803:
put(r.MyDate, yymmn6.) as MyDateFormatted
See this link for more details:
Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. Registration is now open through August 30th. Visit the SAS Hackathon homepage.
Register today!Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.