2017-10-17 18 views
1

SAS datetime 형식에 대한 도움이 필요합니다. (원하는 열 exp_dt 포함) 데이터 집합 :SAS datetime 형식에 일 수 추가

datetime   valid   exp_dt 
4OCT2017:13.00.00   1   5OCT2017:13.00.00 
4OCT2017:15.20.00   7   11OCT2017:15.20.00 
6OCT2017:08.00.00   30  5NOV2017:08.00.00 

그래서, 나는 날짜에 유효한 값 (일수)를 추가해야합니다. 방금 ​​SAS Base로 시작했는데 다른 datetime 형식이 맞는지 잘 모르겠습니다. 나는이 함께했는데, 심지어는 올바른 방향으로 가고 있는지 확실하지 않습니다했습니다 그래서 아마 GUI 작업을 통해 더 쉬운 방법이, 내가, SAS 엔터프라이즈 가이드에 프로젝트를 일하고 있어요 또한

PlannedSchedTime = datetime ; 
Postunit = 'DAY' ; 
postval = valid ; 
exp_dt = put(intnx(Postunit,PlannedSchedTime,postval,'same'),datetime20.); 
put exp_dt= ; 
run; 

를?

답변

1

원하는 결과를 인쇄 할 코드 샘플입니다. 다른 응답 상태와 마찬가지로 DTDAY은 SAS에 기준 값이 날짜 대신 datetime 인 일을 추가하도록 알려줍니다.

data datetimes; 
    informat datetime anydtdtm. valid best12.; 
    format datetime datetime20.; 
    input datetime valid; 
    cards; 
4OCT2017:13.00.00 1 
4OCT2017:15.20.00 7 
6OCT2017:08.00.00 30 
; 
run; 

data datetimes_added; 
    set datetimes; 
    format exp_dt datetime20.; 
    exp_dt = intnx('DTDAY',datetime,valid,'SAME'); 
    put exp_dt = ; 
run; 
1

당신은 확실히 올바른 길을 가고 있습니다! datetime 값을 처리 중이므로 DAYdtDAY으로 바꿉니다.

exp_dt을 문자 열로 사용하지 않으려면 put 기능을 사용하지 말고 형식 (예 : format exp_dt2 datetime20.;)을 사용하십시오.

+0

SAS에서는'1960-01-01 00 : 00 : 00'이 사람이 읽을 수있는 형식으로 표시되기 때문에'datetime'은 단지 몇 초입니다. 그래서 '24 * 60 * 60 * valid'를 추가하는 것도 효과가 있습니다. 일광 절약 시간이 어떻게 결과에 영향을 주는지 확실하지 않습니다. – Petr

+1

날짜/시간 값에는 일광 절약 시간제 개념이 없기 때문에 질문에있는 예제의 경우 간단하게 계산하면됩니다. intnx 함수가 더 깔끔하고 더 쉽게 해석 할 수 있기 때문에 intnx 함수를 선호합니다. – John