Whats the best way to format monthstart and end dates to use in a teradata passthrough query in SAS,
below is a bit of code that formats todays date in to teradata format but not sure who to do the monthstart and monthend in the same format.
any help is appreciated
data _null_;
call symput('yyyymmdd',compress(put((intnx('day',today(),1)-1),yymmdd10.),"-"));
run;
%put &yyyymmdd;
data x;
format yymmdd $7.;
yymmdd = substr(&yyyymmdd.,7,6);
VAR = "1";
New_Date = cat(VAR,yymmdd);
drop yymmdd var;
run;
%global td_dte;
proc sql;
select New_Date into: td_dte
from x;
quit;
%put &td_dte;
proc sql; drop table x; quit;
I'm not familiar with Teradata but following your logic how about something like this:
data _null_;
today = today();
month_start = intnx('MONTH', today, 0, 'BEGINNING');
month_end = intnx('MONTH', today, 0, 'END');
call symput('today', '1' !! put(today, yymmddn6.));
call symput('month_start', '1' !! put(month_start, yymmddn6.));
call symput('month_end', '1' !! put(month_end, yymmddn6.));
run;
%put &today &month_start &month_end;
I'm not familiar with Teradata but following your logic how about something like this:
data _null_;
today = today();
month_start = intnx('MONTH', today, 0, 'BEGINNING');
month_end = intnx('MONTH', today, 0, 'END');
call symput('today', '1' !! put(today, yymmddn6.));
call symput('month_start', '1' !! put(month_start, yymmddn6.));
call symput('month_end', '1' !! put(month_end, yymmddn6.));
run;
%put &today &month_start &month_end;
Thanks SASKiwi it works, very much appreciated.
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!
Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.