我正在尝试创建一个SAS表来保存输出表的描述和名称,其中包含格式化的日期。但是输出包括未格式化的日期。
我的代码:
data tablenames;
infile datalines delimiter=',';
input description: $30. sastablename: $30.;
attrib datetoday format=yymmdd6.;
datetoday = date();
mergedtext=catx('_',sastablename,datetoday);
output;
datalines;
Table for Customers,TfC
Table for Sales,TfS
;
代码输出为 mergedtext 变量提供 TfC_20688 。 我想要的 mergedtext 变量的输出是 TfC_160822 。
答案 0 :(得分:2)
您需要让CATX()知道使用格式化的值。如果您的变量已经格式化,请尝试使用VVALUE()函数。否则,使用PUT()函数应用所需的格式。
data tablenames;
infile datalines delimiter=',';
input description: $30. sastablename: $30.;
attrib datetoday format=yymmddn8.;
datetoday = date();
mergedtext1=catx('_',sastablename,vvalue(datetoday));
mergedtext2=catx('_',sastablename,put(datetoday,yymmddn8.));
datalines;
Table for Customers,TfC
Table for Sales,TfS
;
P.S。不要用两位数。
答案 1 :(得分:0)
您可以使用PUT()函数将datetoday中的SAS日期(其值为20688)转换为您想要的yymmdd格式。
43 data tablenames;
44 infile datalines delimiter=',';
45 input description: $30. sastablename: $30.;
46 mergedtext=catx('_',sastablename,put(date(),yymmddn6.));
47 put mergedtext=;
48 output;
49 datalines;
mergedtext=TfC_160822
mergedtext=TfS_160822
NOTE: The data set WORK.TABLENAMES has 2 observations and 3 variables.