일/Data Mining

[SAS tip] sas datetime value를 yyyymmddhhmmss 형식으로 변형하기.

LEEHK 2008. 1. 22. 11:35

1. 목적.

    sas datetime 값을, yyyymmddhhmmss 형식으로 변환합니다.

    ex. '1495222292'(viewer에 노출은 '  01JAN1960:00:20:34'로 됨) -> '20070520111550' 로 변환.

 

2. 변환 대상

    oracle 테이블의 'DATE' 타입 변수를 sas에서 열면, 실제 저장은 sas datetime 변수로 저장되고, format/inforamt 은 datetime20. 으로 표현됩니다.

    * sas datetime 변수 : '1495278950'  , numeric 8바이트로 저장됩니다.

    * format/informat datetime20. : sas datetime 변수를 '  20MAY2007:11:15:50' 같은 포맷으로 변환해서 보여줍니다.

 

3. 변환식.

    cnv_date=put(input(put(date,datetime16.),DATE16.),yymmddn8.)||compress(put(date,tod8.),':');

    * yyyymmddn8. : yyyymmdd 형식을, separator 없이(n) 붙여서 8바이트 텍스트로 표현. SAS date value 만 사용 가능. SAS datetime 변수는 사용 불가능.

    * tod8. : sas datetime 값을 hh:mm:ss 형식으로 표현. 밀리세컨까지 표현하려면 tod8.2 로 사용.

 

별첨. 심화학습.

 

* SAS DATETIME value 와 SAS DATE value는??

: 모두 numaric 변수임.

구분 설명 1 증가하면 쓰임.
SAS date value SAS에서 기준한 특정일 이후 경과한 일 수 1일 이후 경과일 계산 및 요일 구하기 등
SAS time value 오늘 자정 후 경과한 초 수(자동변수) 1초 후 자동변수. 난수 생성시 seed로 주 사용
SAS datetime value SAS에거 시준한 특정일 이후 경과한 초 수 1초 후 transaction간의 시간 차 계산 시

 

 

* SAS 도움말 중. 도움이 되는 페이지 (색인창 입력 기준)

- date values

- date values, integrity of 

 

 

 

++

 

앞으로 SAS tip 정리할 때마다 블로그에도 조금씩 올리겠음.