BookmarkSubscribeRSS Feed
EMC9
Obsidian | Level 7

I am currently trying to assign a Year macro that will show the year : like below

%let yr = year(&date.);

%let dag = day(&date.);

%let yydd = compress(&yr.||&dag.);

For e.g. NAME = D20130719

Thanks

3 REPLIES 3
arnouxvr
Fluorite | Level 6

Hi Allistair,

Please try the following:

%let year  = %sysfunc(year("&sysdate"d));

%let month = %sysfunc(putn(%sysfunc(month("&sysdate"d)),Z2.));

%let day   = %sysfunc(putn(%sysfunc(day("&sysdate"d)),Z2.));

%let combined = D&year.&month.&day;

%put  &combined;

EMC9
Obsidian | Level 7

Hi Arnoux

will try that out now.

Thank you!

Scott_Mitchell
Quartz | Level 8

You could also create a Picture Format.

PROC FORMAT ;

PICTURE  DYYMMDD LOW-HIGH = "D"'%Y%0m%0d'

(DATATYPE = DATE) ;

RUN ;

%LET WANT = %SYSFUNC(PUTN("&SYSDATE."D,DYYMMDD.));

%PUT ************** &WANT.;

LOG:

SYMBOLGEN:  Macro variable WANT resolves to D20130723

************** D20130723

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

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
  • 3 replies
  • 1108 views
  • 4 likes
  • 3 in conversation