Teradata имеет вид Sys_Calendar.Calendar. Вы можете использовать это в запросе, он имеет всю информацию о буднях и др.
если вы хотите использовать SAS, используйте функцию дня недели и используйте функцию symput вызова, как показано ниже. Teradata нуждается в одинарных кавычках вокруг даты, поэтому лучше использовать одинарные кавычки при создании макропеременной
data _null_;
/* this is for intial date*/
date_int = input('2016-12-31', yymmdd10.);
/* create a new date variable depending on weekday*/
if weekday(date_int) = 7 then date =date_int-2; /*sunday -2 days to get
friday*/
else if weekday(date_int) = 6 then date =date_int-1;/*saturday -1 day to get
friday*/
else date =date_int;
format date date_int yymmdd10.;
call symputx('date', ''''||put(date,yymmdd10.)||'''');
run;
%put modfied date is &date;
modified date is '2016-12-29'
Теперь вы можете использовать эту макропеременную при прохождении.