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

如何在SAS中将无日的yyyy/mm格式日期转换为NOV2020格式

SAS中yyyy/mm格式转NOV2020格式的方法

要将无日的yyyy/mm格式日期(如2020/11)转换为NOV2020格式,核心是先构造完整的SAS日期值(补1号),再应用对应格式,以下是具体实现方式:

情况1:输入为字符型变量

如果你的日期是字符类型(如变量char_date值为'2020/11'),可以通过补日、转日期值、应用格式三步完成:

data want;
    set have;
    /* 补1号构造完整日期字符串,转成SAS日期值 */
    sas_date = input(cats(char_date, '/01'), yymmdd10.);
    /* 用MONYY7.格式输出NOV2020样式 */
    format sas_date monyy7.;
run;

也可以拆分年月后用mdy函数构造日期:

data want;
    set have;
    year = input(scan(char_date, 1, '/'), 4.);
    month = input(scan(char_date, 2, '/'), 2.);
    sas_date = mdy(month, 1, year);
    format sas_date monyy7.;
run;

情况2:输入为数值型变量

如果你的日期是数值类型(如变量num_date值为202011),可以先转字符补日再处理:

data want;
    set have;
    sas_date = input(cats(put(num_date, z6.), '01'), yymmdd8.);
    format sas_date monyy7.;
run;

关键说明

  • MONYY7.是SAS内置格式,专门用于输出三位月份缩写+四位年份的样式(如NOV2020);
  • SAS日期值必须包含日,补1号是通用处理方式,不会影响年月的展示结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 12:04:59