I'm passing a date and it will b a character only,can't i store it in any variable or macro variable like %let or as i'm doingin code.And how can i change this date into numeric and store in a variable so that i can find no of weekdays between these two dates.
%macro ab(strt,end);
a=&strt;
b=&end;
%put a= b=;
%mend;
%ab(01jan2015,31jan2015);
There's some mixing of data step and macro functionality going on in previous posts.
This would be an alternative to save those strings as dates.
%macro ab(strt,end);
%let a="&strt"d;
%let b="&end"d;
%put a=&a. b=&b.;
%mend;
%ab(01jan2015,31jan2015);
At that point, you should be able to use the dates in a function such as intck
e.g.
%macro ab(strt,end);
%let diff = %sysfunc(intck(day,"&strt."d,"&end."d));
%put Days between = &diff.;
%mend;
%ab(01jan2015,31jan2015);
I'm assuming this is part of a larger macro, so you'll be able to use the resulting value in a variable.
You want express them as macro variable ?
%macro ab(strt,end);
%let a=%sysfunc(inputn(&strt,date9.));
%let b=%sysfunc(inputn(&end,date9.));
%let dif=%eval(&b-&a);
%put a=&a b=&b dif=&dif;
%mend;
%ab(01jan2015,31jan2015)
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.
Ready to level-up your skills? Choose your own adventure.