我有一份每周四运行的SAS工作,但有时需要在周三,也许周二晚上运行.该工作以4周的间隔收集一些数据直到最接近的星期日.例如,今天我们有19M2015,我需要数据直到2015年5月15日.
data get_some_data;
set all_the_data;
where date >= '16Feb2015' and date <= '15Mar2015';
run;
Run Code Online (Sandbox Code Playgroud)
下周我还要手动更改日期参数
data get_some_data;
set all_the_data;
where date >= '23Feb2015' and date <= '22Mar2015';
run;
Run Code Online (Sandbox Code Playgroud)
无论如何,我可以自动化这个?
我将扩展来自@ user667489的建议,因为它可能需要你一段时间来解决它.关键是使用week时间间隔,默认情况下在星期日开始(您可以使用移位索引更改此值,请阅读此内容以获取更多详细信息)
所以你的查询只需要:
where intnx('week',today(),-4)<date<=intnx('week',today(),0);
Run Code Online (Sandbox Code Playgroud)