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.
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9.
Early bird rate extended! Save $200 when you sign up by March 31.
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.