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

SAS中将常规日期格式转换为1960年1月1日起累计天数的咨询

SAS DDMMYYYY格式日期转1960年基准累计天数方法

你提供的21112021属于DDMMYYYY(日/月/4位年)格式的日期值,SAS原生的日期值本身就是以1960年1月1日为0点计算的累计天数,你只需要用输入函数把原始日期值转换成SAS标准日期类型即可:

1 原始数据为字符串类型的处理方案

如果你的日期存储为字符型变量,直接用INPUT函数匹配对应的日期输入格式即可:

/* 示例代码 */
data work.demo;
    /* 原始字符型日期变量 */
    raw_date = '21112021';
    /* 用DDMMYY10.输入格式转换为SAS标准日期值 */
    sas_serial_date = input(raw_date, ddmmyy10.);
    /* 可选:如果需要查看转换后的常规日期展示,添加format语句,不需要则省略 */
    format sas_serial_date date9.;
run;

上述代码中sas_serial_date如果不指定显示格式,直接输出的就是你需要的累计天数。以示例的2021年11月21日为例,转换后的累计天数为22604,可以自行核验。

2 原始数据为数值类型的处理方案

如果你的原始日期是数值型的21112021,需要先转成字符型再做转换:

data work.demo;
    /* 原始数值型日期变量 */
    raw_date_num = 21112021;
    /* 先转8位字符,再用INPUT转换为SAS日期值 */
    sas_serial_date = input(put(raw_date_num, 8.), ddmmyy10.);
run;

注意事项

  • 务必使用ddmmyy系列的输入格式,不要误用mmddyy格式,否则会导致月日顺序颠倒,转换结果错误
  • 转换完成后可以临时给变量加ddmmyy10.格式,查看输出的日期是否和原始值一致,验证转换正确性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 01:24:03