2012-07-04 6 views
4

Возможно ли использовать команду ceil на переменную формата времени, такую ​​как 09:31:23? Я хотел бы использовать ceil, чтобы иметь 09:32:00. Я пытался использовать что-то похожее на round(time,'0:01:00'T), но я хочу использовать ceil, так как я не хочу округлять. Использовать round даст мне 09:31:00. Я пытался использовать ceil вместо round, но он не работает.SAS: переменная формата времени

ответ

7

Поскольку время SAS на самом деле составляет несколько секунд с полуночи, CEIL даст вам начало следующей секунды. Чтобы начать работу в следующую минуту, используйте функцию INTNX.

data _null_; 
    t='09:31:23.12'T; 
    nextsecond=ceil(t); 
    nextminute=intnx('minute', t, 1, 'BEGINNING'); 
    put t= time12.2 nextsecond= time12.2 nextminute= time12.2; 
run; 

LOG: t=9:31:23.12 nextsecond=9:31:24.00 nextminute=9:32:00.00 
+0

Превосходно! Я полностью забыл о мощной команде intnx! Спасибо за понимание! Вы знаете, как использовать ceil/intnx все переменные времени? 09:31:23 09:33:33 09: 38: 56' всем равным '09: 40: 00'? – Plug4

+4

AH Nevermind! Я могу сделать следующее: 'nextminute = intnx ('minute10', t, 1, 'BEGINNING');' – Plug4