DATA Step, Macro, Functions and more

How to convert date9. to iso8601 format ?

Accepted Solution Solved
Reply
Occasional Contributor
Posts: 11
Accepted Solution

How to convert date9. to iso8601 format ?

How do I convert DATE9. format to ISO8601 date format ?

 

I need to convert the 10JAN2011 to 2011-01-10.

 

Is there a way to do this ?


Accepted Solutions
Solution
‎03-21-2016 03:30 PM
Super User
Super User
Posts: 7,980

Re: How to convert date9. to iso8601 format ?

[ Edited ]

Well, that example, is not necessarily ISO date, it is YYYY-MM-DD foramt which is part of ISO.  You would likely do it:

isodate=put(your_date9_var,yymmdd10.);

E.g.:

data tmp;
  a="15FEB2015"d;
  b=put(a,yymmdd10.);
run;

View solution in original post


All Replies
Solution
‎03-21-2016 03:30 PM
Super User
Super User
Posts: 7,980

Re: How to convert date9. to iso8601 format ?

[ Edited ]

Well, that example, is not necessarily ISO date, it is YYYY-MM-DD foramt which is part of ISO.  You would likely do it:

isodate=put(your_date9_var,yymmdd10.);

E.g.:

data tmp;
  a="15FEB2015"d;
  b=put(a,yymmdd10.);
run;
Super User
Posts: 19,855

Re: How to convert date9. to iso8601 format ?

Formats only control the display of the variable. 

If you need to change the format, use a format statement. This keeps your variable as a date so that you can do calculations later on, such as duration.

 

format variable yymmdd10.;

Otherwise, if you want a character variable use PUT() function as demonstrated in the other answer.

☑ This topic is solved.

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

Discussion stats
  • 2 replies
  • 1808 views
  • 1 like
  • 3 in conversation