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.
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
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.