【问题标题】:How to extract month from a date in SAS如何从SAS中的日期中提取月份
【发布时间】:2019-08-31 00:10:30
【问题描述】:

我试图从 SAS 中的日期中提取一个月,但到目前为止,我所有的新月份变量都丢失了。

我曾尝试在 SAS 中使用 month() 函数的一些组合,但到目前为止它只是丢失了。日期格式如下:01/31/2017 (MMDDYY10.)

我试过了

month = month(end_date) 

Month =catx('/',put(month(end_date),z2

我希望月份显示为数字 (01) 或 3 个字母代码 (JAN),目前只是缺少 (.)

提前致谢!

【问题讨论】:

  • 如果您的第一个示例返回缺失值,我会假设 end_date 的格式不正确。如果在数据集上运行proc contents,变量会是什么样子?
  • 显示为 Num 类型,格式为 MMDDYY10。

标签: date sas


【解决方案1】:

month() 要返回缺失值,end_date 变量必须是数字且缺失。如果 end_date 是字符变量,则日志将显示 invalid numeric data

使用monname3. 格式将日期值转换为$3。字符值 mon

monthname = put (end_date, monname3.);

其他选择是:

  • 保持日期值不变并更改格式,或者
  • 将日期值映射到月份值的第一个值,并对其进行格式化

例如:

end_date_copy = end_date;
format end_date_copy monname3.;

end_date_month = intnx('month', end_date, 0);
format end_date_month monname3.;

您最终要做什么取决于如何在下游使用 mon 进行报告或汇总。

【讨论】:

    猜你喜欢
    • 2019-03-20
    • 2014-05-01
    • 2013-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-20
    • 2021-04-02
    • 1970-01-01
    相关资源
    最近更新 更多