My program needs to compare the previous month/year (SEP2012) with the month/year of entries in a data set, in order to only extract entries from the previous month. My program successfully uses substr to extract the value "OCT2012" from the data set variable, which is in datetime20. format.
The problem arises when I'm trying to create a value for the previous month, because for some reason it appears as "01SEP12:00:00:00", meaning that the subst function cannot get "SEP2012" from it, only "SEP12".
This is the code that is being used:
%let last_month = %sysfunc(intnx(month, %sysfunc(today()), -1), date.):00:00:00;
The peculiar thing (to me) is that the following almost identical code was used to get it in the correct format ("01SEP2012:00:00:00") from the exact same data set variable:
%let recent_monday = %sysfunc(intnx(week1.2, %sysfunc(today()),0,b), date.):00:00:00;
So my question is, how can I edit the first line of code so that it extracts the full datetime, rather than abbreviating the year from 2012 to 12? I need it to be "01SEP2012:00:00:00".
Thanks.
Use date9.
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
Need to connect to databases in SAS Viya? SAS’ David Ghan shows you two methods – via SAS/ACCESS LIBNAME and SAS Data Connector SASLIBS – in this video.
Find more tutorials on the SAS Users YouTube channel.