BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
EinarRoed
Pyrite | Level 9

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. Smiley Happy

1 ACCEPTED SOLUTION

Accepted Solutions
LinusH
Tourmaline | Level 20

Use date9.

Data never sleeps

View solution in original post

1 REPLY 1
LinusH
Tourmaline | Level 20

Use date9.

Data never sleeps

SAS Innovate 2025: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

How to connect to databases in SAS Viya

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.

Discussion stats
  • 1 reply
  • 796 views
  • 1 like
  • 2 in conversation