DATA Step, Macro, Functions and more

Re:Macro dates

Accepted Solution Solved
Reply
Contributor
Posts: 71
Accepted Solution

Re:Macro dates

Hi all,

%Let mon - Dec2011 ;

I want to use the above macro variable in a data step and create a month end  date variable in date9. format (like 31DEC2011) . Is there a easy way to do it?

Data a;

date9 = 31dec2011(this is what i want to see in column date9.)

Run;

Thanks in advance for your help.


Accepted Solutions
Solution
‎03-11-2012 10:17 AM
Super User
Super User
Posts: 6,499

Re:Macro dates

First learn about date literals to make it easier to use the macro variable.  You could write "01&mon"d to represent the first of the month.

Then learn about the INTNX function for how to convert a date.  You want to use MONTH interval and find the END of the interval.

%let mon=Dec2011;

data a;

  date9 = intnx('month',"01&mon"d,0,'end');

  format date9 date9.;

  put "mon=&mon " date9= ;

run;

mon=Dec2011 date9=31DEC2011

You can also do this in macro logic if you need it.

%let d=dec2011;

%let e=%sysfunc(intnx(month,"01&d"d,0,e),date9.);

%put e=&e;

e=31DEC2011

%let d=feb2012;

%let e=%sysfunc(intnx(month,"01&d"d,0,e),date9.);

%put e=&e;

e=29FEB2012

View solution in original post


All Replies
Solution
‎03-11-2012 10:17 AM
Super User
Super User
Posts: 6,499

Re:Macro dates

First learn about date literals to make it easier to use the macro variable.  You could write "01&mon"d to represent the first of the month.

Then learn about the INTNX function for how to convert a date.  You want to use MONTH interval and find the END of the interval.

%let mon=Dec2011;

data a;

  date9 = intnx('month',"01&mon"d,0,'end');

  format date9 date9.;

  put "mon=&mon " date9= ;

run;

mon=Dec2011 date9=31DEC2011

You can also do this in macro logic if you need it.

%let d=dec2011;

%let e=%sysfunc(intnx(month,"01&d"d,0,e),date9.);

%put e=&e;

e=31DEC2011

%let d=feb2012;

%let e=%sysfunc(intnx(month,"01&d"d,0,e),date9.);

%put e=&e;

e=29FEB2012

Contributor
Posts: 71

Re:Macro dates

Thanks!!

☑ This topic is SOLVED.

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

Discussion stats
  • 2 replies
  • 182 views
  • 0 likes
  • 2 in conversation