data want;
set have;
date_char = put(date_num,Z6.);
date_num = input(date_char,yymmn6.);
year = year(date_num);
month = month(date_num);
format date_num monyy7.;
run;
或者,您可以使用算术从数字中获取年份和月份。然后使用数字年份和月份生成实际日期值。
data want;
set have;
year = int(date_num/100);
month = mod(date_num,100);
date_num = mdy(month,1,year);
format date_num monyy7. month z2. ;
run;
如果您有一个字符变量,则可以使用 YYMMN 格式将其转换为日期值。然后,您可以使用 MONYY 格式将其显示为 JUL2024。
您还可以使用 MONTH() 和 YEAR() 函数来计算年份和月份。
因此,如果您现有的数据集名为 HAVE,现有变量名为 DATE_CHAR,那么您可以使用这样的代码来创建一个名为 DATE_NUM 的新变量。
如果您想要将 YEAR 和 MONTH 作为字符串,那么您可以使用 SUBSTR() 函数来分离您的字符变量。
如果现有变量已经是 DATE 值变量,但附加了 YYMMN6. 格式,因此它会以 yyyymm 样式打印,那么您可以跳过 INPUT() 函数,因为您已经有日期值。您只需更改附加的格式,使其以 MONYYYY 样式而不是 YYYYMM 样式打印即可。
如果现有变量只是一个具有 YYY、YMM 等值的常规数字(其中个位和十位代表月份数),则首先使用 PUT() 函数将其转换为 6 位字符串,格式为 6. 或 Z6.。然后应用上述逻辑将 6 位字符串转换回数据值。
或者,您可以使用算术从数字中获取年份和月份。然后使用数字年份和月份生成实际日期值。