SAS EG中的程序延迟启动

时间:2018-07-30 19:28:39

标签: mysql sql sas sas-macro

目前,我每天早上都在开发程序的同时正在运行它,因此我可以使用今天的数据来解决我的问题,这是它确实需要一些时间才能运行。我想知道是否有人知道我可以编写一些代码,以便在单击运行时它将等到特定的时间开始。目前,我正在考虑在顶部添加循环以尝试执行此操作:

例如

%macro delay();
    data _null_;
         if %sysdate() >= 8:00 then %put Start;
         else %delay();
    run;
%mend;

不好意思的代码编写是在没有SAS的情况下进行的。 另外我也不想使用任何SQL服务器,例如T-SQL。

无论如何,基本上使无限循环有害吗?

1 个答案:

答案 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资源。