date - %PUT - 以数字宏变量的格式打印日期和时间
问题描述
我遇到了这个看起来很容易的问题。
我有像这样的宏:
%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_, time13.));
,类似的东西会给我带来结果:22:06:00
是否有一种简单直接的方法来做到这一点?
谢谢!
解决方案
SYSFUNC 有一个格式选项。考虑一下这对您是否有用。
%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));
推荐阅读
- php - 如何使用 OOP 类将字段添加到 Wordpress 仪表板中的设置>常规
- azure - Azure Devops 需要构建成功才能完成拉取请求
- python-3.x - 我来自自定义 Web 服务器的 HTTP 响应没有被识别为 HTTP 消息
- python - 如何从python字典中选择元素并将其放入数组中
- parsing - PDF:如何解释未在 Adobe 字形列表中列出的名称
- neo4j - HTTP 端点的 Neo4j JSON 格式未指定?
- reactjs - 如何使用 React Router 让我的父组件在页面刷新时重新运行 api 调用?
- docker - docker 容器如何可靠地表明它们不仅在运行,而且已经准备就绪?
- javascript - 通过javascript在表中插入数据
- python - Python舍入函数返回不同的答案