DATA Step, Macro, Functions and more

How to covert MMM YYYY to iso format?

Accepted Solution Solved
Reply
Regular Contributor
Posts: 214
Accepted Solution

How to covert MMM YYYY to iso format?

Hi all,

 

Could you please advise how to convert mmm yyyy into iso format.

 

data have;
  input cdate $10.;
  datalines;
Mar 2017
;
run;

 

I badly need the date in iso format: 2017-03

 

Thank you!


Accepted Solutions
Solution
‎05-21-2018 09:08 AM
Valued Guide
Posts: 533

Re: How to covert MMM YYYY to iso format?

[ Edited ]
Posted in reply to DmytroYermak

If you want to keep your date as a character value than this would do the trick:

length sdate $8;
sdate=put(input(cdate, monyy8.), yymmd8.);

The SAS ISO formats always display the date. In your specific case it looks like you can get away with a more common date format.

 

In general I would recommend to read up on how SAS deals with dates as they are usually stored as numeric values and formatted in a desired form when presenting the value in a report or such. A good start would be the online docs.

 

Hope this helps,

-- Jan

View solution in original post


All Replies
Solution
‎05-21-2018 09:08 AM
Valued Guide
Posts: 533

Re: How to covert MMM YYYY to iso format?

[ Edited ]
Posted in reply to DmytroYermak

If you want to keep your date as a character value than this would do the trick:

length sdate $8;
sdate=put(input(cdate, monyy8.), yymmd8.);

The SAS ISO formats always display the date. In your specific case it looks like you can get away with a more common date format.

 

In general I would recommend to read up on how SAS deals with dates as they are usually stored as numeric values and formatted in a desired form when presenting the value in a report or such. A good start would be the online docs.

 

Hope this helps,

-- Jan

Regular Contributor
Posts: 214

Re: How to covert MMM YYYY to iso format?

Posted in reply to jklaverstijn
Thank you, Jan! I did not find the monyy8. format, now I will be aware.
SAS Super FREQ
Posts: 825

Re: How to covert MMM YYYY to iso format?

Posted in reply to DmytroYermak

I suugest to use the ANYDTDTE informat, this will give you a SAS date value, that can be used for many things, see example below

 

data have;
  input 
    @1 cdate $10.
    @1 sasDate anydtdte.
  ;
  
  sasDate2 = sasDate;
  
  format sasDate yymmd7. sasDate2 date9.;
  datalines;
Mar 2017
;
run;
Regular Contributor
Posts: 214

Re: How to covert MMM YYYY to iso format?

Posted in reply to Bruno_SAS
Thank you, Bruno. The same with anydtdte. format ) - I never heard. This forum is really useful.
☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
  • 4 replies
  • 120 views
  • 3 likes
  • 3 in conversation