如何将字符型YYYY-MM-DD日期转换为数值型ddmmyy10.格式?
解决SAS字符日期转数值日期的错误问题
你的错误根源是用反了函数:PUT函数用于将数值型数据转为字符型,而要把字符型日期转换成数值型日期,必须使用INPUT函数。错误提示里的$YYMMDD找不到,是因为用PUT处理字符变量时,SAS会自动寻找带$的字符格式,但这完全不是你需要的操作逻辑。
正确的代码如下:
Num_date = INPUT(char_date, yymmdd10.); Format num_date ddmmyy10.;
代码说明:
INPUT(char_date, yymmdd10.):按照yymmdd10.输入格式(对应YYYY-MM-DD的字符形式),将字符变量解析为SAS标准数值型日期(本质是从1960年1月1日起算的天数)。Format num_date ddmmyy10.;:把得到的数值型日期,以DD-MM-YYYY的格式显示。
额外提示:
如果char_date变量里存在非YYYY-MM-DD格式的异常内容,可以在输入格式前加??修饰符,避免SAS报错并自动将异常值设为缺失值:
Num_date = INPUT(char_date, ?? yymmdd10.); Format num_date ddmmyy10.;
内容的提问来源于stack exchange,提问作者marish1358
相关产品推荐
相关产品推荐

