🔒 This topic is solved and locked.
Need further help from the community? Please
sign in and ask a new question.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Posted 05-02-2017 07:48 PM
(62080 views)
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
1 ACCEPTED SOLUTION
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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;
2 REPLIES 2
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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;
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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: