目前,我每天早上都在开发程序的同时正在运行它,因此我可以使用今天的数据来解决我的问题,这是它确实需要一些时间才能运行。我想知道是否有人知道我可以编写一些代码,以便在单击运行时它将等到特定的时间开始。目前,我正在考虑在顶部添加循环以尝试执行此操作:
例如
%macro delay();
data _null_;
if %sysdate() >= 8:00 then %put Start;
else %delay();
run;
%mend;
不好意思的代码编写是在没有SAS的情况下进行的。 另外我也不想使用任何SQL服务器,例如T-SQL。
无论如何,基本上使无限循环有害吗?
答案 0 :(得分:3)
WAKEUP()函数可以使SAS会话休眠直到指定时间。还有一个SLEEP()函数。 WAKEUP()接受日期时间或时间。从文档中:
在日期时间唤醒:
data _null_;
slept=wakeup('01JAN2004:13:00:00'dt);
run;
一次唤醒:
data _null_;
slept=wakeup("22:00:00"t);
run;
与无限循环相比,这应该使用更少的CPU资源。