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:
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9.
Early bird rate extended! Save $200 when you sign up by March 31.
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.
Ready to level-up your skills? Choose your own adventure.