sas: 日期与时间合并

在遇到日期yyyy-mm-dd与时间hh:mm:ss需要合并的时候,可以将日期时间合并为标准字符"yyyy-mm-ddThh:mm:ss"后,利用以下日期时间格式进行转化为可运算的日期时间(变量b),也可以通过put转化为任意输出的字符格式,如datetime18.
data test1;
  a="2004-01-31T12:55:00";
  b=input(a,e8601dt.);
  c=put(b,datetime18.);
  put a b c;
run;

data test2;
  a="2004-01-31T12:55:00";
  b=input(a,is8601dt19.);
  c=put(b,datetime18.);
  put a b c;
run;

data test3;
  a="2004-01-31T12:55:00";
  a1=input(scan(a,1,"T"),yymmdd10.);
  a2=input(scan(a,2,"T"),hhmmss8.);
  b=dhms(a1,0,0,a2);
  c=put(b,datetime18.);
  put a b c;
run;

不规则的日期时间,由于均用函数进行转换,实际应用是也可直接用嵌套函数一步完成:
**********先获得日期时间型,后转为字符******;
data _null_;
a="2018-6-5";
b="8:11";
dt1=input(a,yymmdd10.);
time1=input(b,time8.);
datim3=dhms(dt1,0,0,time1);
datim4=put(datim3,is8601dt20.);
put time1  dt1 datim3 datim4;
run;

*******先获得日期时间字符型,后转为数值******;
data _null_;
a="2018-6-5";
b="8:11";
dt1=input(a,yymmdd10.);
dt2=put(dt1,yymmdd10.); *可以识别转换月份与日期小于10的格式;
time1=input(b,time8.);
time2=put(time1,tod8.); *小时小于会补0,凑足2位;
datim1=dt2||'T'||time2;
datim2=input(datim1,is8601dt20.);
put time1 time2 dt1 dt2 datim1 datim2 ;
run;

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值