用字符变量SAS连接日期

用字符变量SAS连接日期,sas,Sas,我面临的问题是,我无法将日期格式的变量与字符变量连接起来。日期格式为“date9”。连接完成后,日期会变成数字 例如: 代理机构:RCL 日期:2008年3月24日 结果:RCL17615 应该是:2008年3月24日 这是我的代码: data work.collectionrate_new; set work.collectionrate; tran_id=compress(agency||date); run; 谢谢。您只需输入(日期,日期9。)即可将日期格式化为字符: 代码: data

我面临的问题是,我无法将日期格式的变量与字符变量连接起来。日期格式为“date9”。连接完成后,日期会变成数字

例如:

代理机构:RCL 日期:2008年3月24日

结果:RCL17615

应该是:2008年3月24日

这是我的代码:

data work.collectionrate_new;
set work.collectionrate;
tran_id=compress(agency||date);
run;

谢谢。

您只需输入(日期,日期9。)即可将日期格式化为字符:

代码:

data new;
format  date date9. ;
date="24MAR2008"d;
agency="RCL";
tran_id=cats(agency,put(date,date9.));
put _all_;
run;
date=24MAR2008 agency=RCL tran_id=RCL24MAR2008
输出:

data new;
format  date date9. ;
date="24MAR2008"d;
agency="RCL";
tran_id=cats(agency,put(date,date9.));
put _all_;
run;
date=24MAR2008 agency=RCL tran_id=RCL24MAR2008

使用CATT()也可以避免使用COMPRESS()。谢谢。区别是什么?CATT-自动删除尾随空格。猫不会。有一系列CAT类型的函数可以做不同的事情,请查看文档以了解更多详细信息。查看“请参阅”部分以查看该系列中的所有不同函数。我现在看到,当使用CATT()时,我返回到数字问题。compress()提供日期。我想知道为什么。假设她正在使用compress()删除额外的空格,那么CATT函数可能更合适。谢谢你发现了这一点。我已使用CATS更新了代码,以删除前导空格和尾随空格。由于日期已格式化为
date9
,因此您也可以使用
vvalue
而不是
put
,后者返回格式化的值<代码>交易id=cats(代理,价值(日期))