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

如何在SAS中实现dd-mmm-yyyy格式日期转date9格式

SAS日期格式转换解决方案

你写的New date = input(compress(date,'-'),date9.);逻辑本身没有问题,已经实现了将字符型日期转换为SAS内部数值型日期的操作,没有得到预期效果是因为你没有给新生成的日期字段指定显示格式,SAS默认会按通用数值格式输出,不会自动展示为01SEP2021样式。

方案1:需要保留日期类型用于后续计算

仅需额外加一行format语句指定显示格式即可:

/* 注意SAS变量名默认不支持空格,建议用下划线代替空格避免语法报错 */
New_date = input(compress(date,'-'), date9.);
format New_date date9.;

完成后New_date为数值型日期字段,展示效果为01SEP2021,可直接用于日期计算、筛选等操作。

方案2:仅需得到字符型结果,不需要日期计算

不需要做类型转换,直接压缩掉原字符串中的横杠即可,代码更精简:

New_date_char = compress(date, '-');

输出的New_date_char为字符型字段,值直接就是01SEP2021。

特殊场景补充

如果你的原始date字段本身就是数值型日期,仅需要调整显示格式,不需要做任何转换操作,直接添加format语句即可:

format date date9.;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 12:51:04