我需要将当前日期添加到我从SAS在下面的格式导出输出:filename_YYYYMMDDhhmmss.csvSAS - 自定义日期格式 - 为YYYYMMDDhhmmss
我创建一个宏变量方式如下:
%let date_human = %sysfunc(today(), YYYYMMDDn8.);
有没有人知道如何创建一个自定义格式的日期我有? datetime20。给出一个不正确的。
谢谢。
我需要将当前日期添加到我从SAS在下面的格式导出输出:filename_YYYYMMDDhhmmss.csvSAS - 自定义日期格式 - 为YYYYMMDDhhmmss
我创建一个宏变量方式如下:
%let date_human = %sysfunc(today(), YYYYMMDDn8.);
有没有人知道如何创建一个自定义格式的日期我有? datetime20。给出一个不正确的。
谢谢。
使用B8601格式。
%let now=%sysfunc(datetime());
%let date_human=%sysfunc(putn(&now,B8601DN8))%sysfunc(timepart(&now),B8601TM6);
使用picture
在proc format
:
proc format;
*custom format for the datetime values;
picture cust_dt other = '%0Y%0m%0d%0H%0M%0S' (datatype=datetime);
run;
** put into macro **;
data test;
dt = datetime();
call symputx("dt",strip(put(dt,cust_dt.)));
run;
%put &dt.;
** use macro for filename **;
data file_&dt.; set sashelp.class;
run;
两个解决方案:
1.使用proc format
在这里,我们创建了一个名为date_human
格式创建日期时间指示的图片格式。你可以任何你想要的名称命名。
proc format;
picture date_human other='%0Y%0M%0D%0H%0M%0S' (datatype=datetime);
run;
%let date_human = %sysfunc(datetime(), date_human.);
2.混搭在一起,各种宏观变量
/* YYYYMMDD part */
%let yymmdd = %sysfunc(today(), yymmdd8.);
%let datetime = %sysfunc(datetime());
%let time = %sysfunc(putn(%sysfunc(timepart(&datetime.)), time8.0));
/* hhmmss part */
%let hour = %scan(&time., 1, :);
%let min = %scan(&time., 2, :);
%let sec = %scan(&time., 2, :);
/* Put it all together */
%let date_human = &yymmdd.&hour.&min.&sec.;
昨晚在sas.communities.com上提问并回答了此问题。 – Reeza
我找不到适合我的日期格式的任何内容,还有一些不同的内容已发布。你有任何机会链接到该职位? –