You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SAS:将$5.格式字符型日期转换为MMDDYY10.格式数值型日期

解决方法

问题核心:直接给字符型变量应用日期格式无效,因为SAS的日期格式仅适用于数值型的SAS日期变量(即存储从1960年1月1日起的天数的数值)。你的字符值44106本身就是SAS日期的数值形式,只需两步转换:

步骤1:将字符型天数转换为数值型SAS日期

使用input()函数把字符型变量转成数值,得到SAS日期值:

data want;
    set have;
    /* char_date是你的原字符型日期变量 */
    date_value = input(char_date, 5.);
run;

步骤2:应用目标日期格式

情况1:使用默认斜杠分隔的MMDDYY10.格式

直接给数值变量指定格式,会显示为02/10/2020:

data want;
    set have;
    date_value = input(char_date, 5.);
    format date_value mmddyy10.;
run;

情况2:使用点分隔的MM.DD.YYYY格式(匹配你的示例02.10.2020)

SAS默认的MMDDYY10.是斜杠分隔,需要自定义格式实现点分隔:

/* 先定义自定义日期格式 */
proc format;
    picture my_mmddyy (default=10)
        low-high = '%0m.%0d.%Y' (datatype=date);
run;

/* 转换并应用自定义格式 */
data want;
    set have;
    date_value = input(char_date, 5.);
    format date_value my_mmddyy.;
run;

关键说明

  • 字符型变量无法直接应用日期格式,必须先转为数值型SAS日期值
  • input(char_date, 5.)的作用是把字符形式的天数(如'44106')转换为数值44106,这个数值对应的就是2020年2月10日(1960-01-01加上44106天)

内容的提问来源于stack exchange,提问作者ng510

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 10:47:29