In the following code, i can get the answer for period1, but why I can't get the desired period for period2 but only got date back to 1960. Please help, thanks.
%LET RUNDATE = '01OCT2016'D;
DATA _NULL_;
CALL SYMPUT("PERIOD1",PUT(INTNX('MONTH',&RUNDATE,-1,'E'),DATE9.));
CALL SYMPUT("PERIOD2",PUT(INTNX('MONTH',&RUNDATE,-1,'E'),DATETIME24.));
RUN;
%PUT &PERIOD1;
%PUT &PERIOD2;
What are you expecting for the result?
Date values are number of days from 1 Jan 1960
Datetime values are number of seconds from midnight 1 Jan 1960.
If you want a datetime value you need to do something to turn a date into datetime.
Perhaps this is close to what you want:
%LET RUNDATE = 01OCT2016;
DATA _NULL_;
CALL SYMPUT("PERIOD1",PUT(INTNX('MONTH',"&RUNDATE"d,-1,'E'),DATE9.));
CALL SYMPUT("PERIOD2",PUT(INTNX('dtMONTH',"&RUNDATE 00:00:00"dt,-1,'E'),DATETIME24.));
RUN;
%PUT &PERIOD1;
%PUT &PERIOD2;
What are you expecting for the result?
Date values are number of days from 1 Jan 1960
Datetime values are number of seconds from midnight 1 Jan 1960.
If you want a datetime value you need to do something to turn a date into datetime.
Perhaps this is close to what you want:
%LET RUNDATE = 01OCT2016;
DATA _NULL_;
CALL SYMPUT("PERIOD1",PUT(INTNX('MONTH',"&RUNDATE"d,-1,'E'),DATE9.));
CALL SYMPUT("PERIOD2",PUT(INTNX('dtMONTH',"&RUNDATE 00:00:00"dt,-1,'E'),DATETIME24.));
RUN;
%PUT &PERIOD1;
%PUT &PERIOD2;
It almost got what I wanted; but may i know why the datetime was 30SEP2016:23:59:59 instead of 30SEP2016:00:00:00? Any idea why?
Your -1 subtracts one second. I left that in because you never showed what you expected the result to actually be.
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.
Ready to level-up your skills? Choose your own adventure.