Date %PUT-以数字宏变量的格式打印日期和时间
我遇到了这个问题,看起来很容易 我有一个宏,比如:Date %PUT-以数字宏变量的格式打印日期和时间,date,sas,format,Date,Sas,Format,我遇到了这个问题,看起来很容易 我有一个宏,比如: %macro test; /* I start from it */ %let time_ = %sysfunc(time()); %let date_ = %sysfunc(date()); %let time1 = %sysfunc(time()); data _null_; timedelay = sleep(5, 1); run; %le
%macro test;
/* I start from it */
%let time_ = %sysfunc(time());
%let date_ = %sysfunc(date());
%let time1 = %sysfunc(time());
data _null_;
timedelay = sleep(5, 1);
run;
%let time2 = %sysfunc(time());
%let diff = %sysevalf(&time2 - &time1);
%put Timenow: &time_;
%put DateNOw: &date_;
%put TimeDifference: &diff;
/*Above works as I want*/
/* What I want to have */
%put Timenow: %sysfunc(put(&time_, time13.)); /* Timenow: 22:06:00 */
%put DateNOw: %sysfunc(put(&time_, date9.)); /* DateNOw: 27FEB2019 */
%put TimeDifference: %sysfunc(put(&time_, time13.)); /* TimeDifference: 00:00:05 */
%mend;
%test;
因此,基本上是这样的,例如,相反地,%sysfunc(put(&time_u,time13.)代码>类似的结果:22:06:00
有没有一种简单直接的方法
谢谢 SYSFUNC有一个格式选项。考虑一下这是否对你有用。< /P>
%let time1 = %sysfunc(datetime());
data _null_;
timedelay = sleep(5, 1);
run;
%let time2 = %sysfunc(datetime());
%let diff = %sysfunc(sum(&time2,-&time1),time13.);
%put NOTE: &=diff;
或者如果您想使用PUTN函数
%put TimeDifference: %sysfunc(putN(%sysevalf(&time2-&time1),time,13));
SYSFUNC有一个格式选项。考虑一下这是否对你有用。< /P>
%let time1 = %sysfunc(datetime());
data _null_;
timedelay = sleep(5, 1);
run;
%let time2 = %sysfunc(datetime());
%let diff = %sysfunc(sum(&time2,-&time1),time13.);
%put NOTE: &=diff;
或者如果您想使用PUTN函数
%put TimeDifference: %sysfunc(putN(%sysevalf(&time2-&time1),time,13));
对我来说,重要的是从差异中推导出来——它也用于不同的地方。我对%sysfunc中的该选项有新的了解。很抱歉,我没有进一步澄清。@MateuszKonopelski听起来您只需要用PUTN函数替换PUT。这正是我所需要的。请更改您原来的帖子,我会将其标记为答案。谢谢请注意,在putn()
的参数中不需要使用%sysevalf()
。%sysfunc()
调用将把方程推到正常的SAS处理中,作为计算putn()
函数调用的一部分进行计算。从差异中推导公式对我来说很重要-它也用于不同的位置。我对%sysfunc中的该选项有新的了解。很抱歉,我没有进一步澄清。@MateuszKonopelski听起来您只需要用PUTN函数替换PUT。这正是我所需要的。请更改您原来的帖子,我会将其标记为答案。谢谢请注意,在putn()
的参数中不需要使用%sysevalf()
。%sysfunc()
调用将把方程推入正常的SAS处理,作为计算putn()
函数调用的一部分进行计算。必须将PUTC/putn函数与sysfunc一起使用。必须将PUTC/putn函数与sysfunc一起使用。