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

Hello all,

 

I'm encountering an irritating problem I was hoping to get some input on.

 

We have a global dates macro in our environment that I'm using to get a list of date variables. I'm using this for another program I'm writing.

 

The date I'm given from our gloal macro is formatted 'MM/DD/YYYY'. The variable &pdeg resolves to '09/23/2015'. I want to rearrange the date so that it's YYYYMMDD.

 

Here is my code:

 

%let date = %sysfunc(
cat(
%qsubstr(&pdeg,8,4),
%qsubstr(&pdeg,2,2),
%qsubstr(&pdeg,5,2)
)
);

 

The problem with this is that  it's giving me the result of 2015923. I'm losing the 0. It's driving me crazy. I know there is a simple solution here but it's evading me. Appreciate any assistance!

1 ACCEPTED SOLUTION

Accepted Solutions
Ody
Quartz | Level 8 Ody
Quartz | Level 8
You know, upon further reflection I suppose there is no harm in leaving it numeric. I had to modify your statement slightly:

%let date = %sysfunc(inputn(%qsubstr(&pdeg,2,10), mmddyy10.), yymmddn8.);

Thanks!

View solution in original post

4 REPLIES 4
ballardw
Super User

Try

%let pdeg=09/23/2015;
%let date = %sysfunc(putn(%sysfunc(inputn(&pdeg,mmddyy10.)),yymmddn8.));
%put &date;
Ody
Quartz | Level 8 Ody
Quartz | Level 8
You know, upon further reflection I suppose there is no harm in leaving it numeric. I had to modify your statement slightly:

%let date = %sysfunc(inputn(%qsubstr(&pdeg,2,10), mmddyy10.), yymmddn8.);

Thanks!
ballardw
Super User

If your PDEG variable was built from something else It might be even easier to use that instead of a string.

Astounding
PROC Star
Why complicate things by adding the CAT function? %let date = %substr(&pdeg,8,4)/%substr(&pdeg,2,2)/%substr(&pdeg,5,2);

hackathon24-white-horiz.png

The 2025 SAS Hackathon has begun!

It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.

Latest Updates

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
  • 4 replies
  • 1506 views
  • 1 like
  • 3 in conversation