Datetime 从HHMMSXXX到HH:MM:SS,XXX SAS

Datetime 从HHMMSXXX到HH:MM:SS,XXX SAS,datetime,time,sas,format,transform,Datetime,Time,Sas,Format,Transform,我有以下输入格式hhmmsxxx,例如93552085,我想将其转换为SAS中的时间格式,如9:35:52085。我试过hhmms。格式,t。格式,但它没有帮助,我每次都会得到奇怪的输出 谢谢 如果您找不到合适的本地化格式,您可以使用自定义格式调用的FCMP函数进行自己的本地化 例如: proc fcmp outlib=sasuser.myfunctions.library; function myDateTimeFormatFunction(dt) $; length dts $2

我有以下输入格式hhmmsxxx,例如93552085,我想将其转换为SAS中的时间格式,如9:35:52085。我试过hhmms。格式,t。格式,但它没有帮助,我每次都会得到奇怪的输出


谢谢

如果您找不到合适的本地化格式,您可以使用自定义格式调用的FCMP函数进行自己的本地化

例如:

proc fcmp outlib=sasuser.myfunctions.library;
  function myDateTimeFormatFunction(dt) $;
    length dts $20;

    dts = translate(putn(dt,'datetime20.3'),',','.');

    return (dts);
  endsub;
run;
quit;


options cmplib=(sasuser.myfunctions);

proc format;
  value myDateTime
  other = [myDateTimeFormatFunction()]
;

data have;
  do row = 1 to 10;
    datetime = datetime() +10 - row;
    _n_ = sleep(10,.001);
    put datetime= 22.3 @;
    put datetime= datetime20.3 @;
    put datetime= myDateTime.;
    output;
  end;
run;

----- LOG -----

datetime=1897993146.607 datetime=22FEB20:12:19:06.607 datetime=22FEB20:12:19:06,607
datetime=1897993145.622 datetime=22FEB20:12:19:05.622 datetime=22FEB20:12:19:05,622
datetime=1897993144.632 datetime=22FEB20:12:19:04.632 datetime=22FEB20:12:19:04,632
datetime=1897993143.643 datetime=22FEB20:12:19:03.643 datetime=22FEB20:12:19:03,643
datetime=1897993142.653 datetime=22FEB20:12:19:02.653 datetime=22FEB20:12:19:02,653
datetime=1897993141.664 datetime=22FEB20:12:19:01.664 datetime=22FEB20:12:19:01,664
datetime=1897993140.674 datetime=22FEB20:12:19:00.674 datetime=22FEB20:12:19:00,674
datetime=1897993139.685 datetime=22FEB20:12:18:59.685 datetime=22FEB20:12:18:59,685
datetime=1897993138.695 datetime=22FEB20:12:18:58.695 datetime=22FEB20:12:18:58,695
datetime=1897993137.706 datetime=22FEB20:12:18:57.706 datetime=22FEB20:12:18:57,706

谢谢你的回答

最简单的方法是: 时间=输入(put(原始时间,Z9.),b8601tm9.3)