mysql - 延迟启动 SAS EG 中的程序

标签 mysql sql sas sas-macro

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

例如

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

请原谅我写的粗制滥造的代码,这是在没有 SAS 的情况下完成的。 此外,我不想使用任何 SQL 服务器,如 T-SQL。

本质上是无限循环是否有害?

最佳答案

WAKEUP() 函数可以使您的 SAS session 休眠到指定时间。还有一个 SLEEP() 函数。 WAKEUP() 接受日期时间或时间。来自文档:

在某个日期时间唤醒:

data _null_;
   slept=wakeup('01JAN2004:13:00:00'dt);
run;

一次唤醒:

data _null_;
   slept=wakeup("22:00:00"t);
run;

这应该比无限循环使用更少的 CPU 资源。

关于mysql - 延迟启动 SAS EG 中的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51601016/

相关文章:

mysql - 程序退出自动回滚

mysql - 如何为 MySQL 中字符串的每个字母分配一个变量?

sas - SAS 中字符数据的编号范围列表

sas - 如何在一个 proc 打印语句中打印多个数据集?

sas - 在 SAS 中计数

MySQL - 存储多个字段或一个 CSV 字段?

Mysql内连接顺序第二个表

php - 如何将多个对象保存到 MySQL 和 Laravel 中的 JSON 列

python pandas .map 双变量 lambda

C# 对象空检查