BookmarkSubscribeRSS Feed
ZZB
Obsidian | Level 7 ZZB
Obsidian | Level 7

Hello,

I want to add 1-month (or X-month) to original date. Is there any simple and efficient way to deal with it?

31/10/2001  --> 30/11/2001

30/11/2001  --> 31/12/2001

31/12/2001  --> 31/01/2002

31/01/2002  --> 28/02/2002

......

Thanks

2 REPLIES 2
slchen
Lapis Lazuli | Level 10

newdate=intnx('month', olddate,1, 'same');

PGStats
Opal | Level 21

Use function INTNX with "SAME" or "END" parameter :

data have;

input (inDate outDate) (:ddmmyy.);

format inDate outDate ddmmyy10.;

datalines;

31/10/2001   30/11/2001

30/11/2001   31/12/2001

31/12/2001   31/01/2002

31/01/2002   28/02/2002

15/02/2002   .

;

data want;

set have;

format newDate endDate ddmmyy10.;

newdate = intnx("MONTH", inDate, 1, "SAME");

enddate = intnx("MONTH", inDate, 1, "END");

run;

proc print data=want noobs; run;

PG

PG
How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 1104 views
  • 6 likes
  • 3 in conversation