SAS中日期变量赋值后显示全为XXXX的问题求助
解决SAS日期变量赋值后显示XXXX的问题
先明确核心原因:
purchase_date显示为2021-09-09:00:00:00,说明这是datetime类型变量(SAS中以秒数为单位存储),而date9.是日期格式(对应以天数为单位存储的date类型变量)。用日期格式去显示datetime类型的数值,会因数值范围不匹配导致显示XXXX。分两种场景给出解决方案:
- 若只需保留年月日的日期类型变量:
使用datepart()函数提取datetime中的日期部分,再指定date9.格式:sales_date = datepart(purchase_date); format sales_date date9.; - 若需要和原变量一致的datetime类型变量:
直接赋值后,给新变量指定datetime类格式(比如datetime19.):sales_date = purchase_date; format sales_date datetime19.;
- 若只需保留年月日的日期类型变量:
额外排查项:检查新数据集里
sales_date的变量属性,确认格式是否正确应用;若在数据步外查看,可重新指定格式刷新显示。
内容的提问来源于stack exchange,提问作者Khushboo
相关产品推荐
相关产品推荐

