全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
9693 0
2018-08-31
在遇到日期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;



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群