От ЧЧММССХХХ до ЧЧ: ММ: СС, ХХХ САС - PullRequest
0 голосов
/ 22 февраля 2020

У меня следующий формат ввода HHMMSSXXX, например 93552085, я хочу преобразовать его в формат времени, например 9: 35: 52,085 в SAS. Я пробовал HHMMSS. формат, т. формат, но это не помогает, я получаю странный вывод каждый раз.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 22 февраля 2020

Спасибо за ответы!

Самый простой способ был: время = ввод (положить (RAWTIME, Z9.), B8601tm9.3);

0 голосов
/ 22 февраля 2020

Если вы не можете найти подходящий формат локализации, вы можете свернуть свой собственный, используя 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

...