STD 테이블에 있는 타임스탬프를 풀어 데이터가 생성(변경)된 일시를 알고자 하는데요.
Function 'RKE_TIMESTAMP_CONVERT_OUTPUT'를 사용하면 되나요?
맞다면 Export 매개변수 중에 I_DAYST, I_TZONE에 어떤값을 주어야 하나요?
디버깅으로 시스템변수 값을 확인하니 SY-DAYST값은 null이고 SY-TZONE = '34200'이더라구요.
근데 위 값으로 펑션테스트해보니 시간이 좀 이상하더라구요.
=====================================================
<TEST1>
I_DAYST = '0'
I_TIMESTMP = '6495855490000'
I_TZONE = '34200'.
E_DATE = 2010.08.02
E_TIME = 18:55:49
=====================================================
<TEST2>
I_DAYST = '0'
I_TIMESTMP = '6495855490000'
I_TZONE = '0'.
E_DATE = 2010.08.02
E_TIME = 09:25:49
=====================================================
I_DAYST, I_TZONE 모두 '0'을 넣고 실행해도 얼추 일시가 나오긴 하던데.
정확히 어떤값을 입력해야하는지 궁금합니다.
또한 타임스탬프는 왜 사용하는건가요?
ERNAM, ERDAT, ERZET
AENAM, AEDAT, AEZET
이런 필드들 사용하는 것과 어떤 차이가 있는건지요?
댓글 2
-
맑은하늘
2010.08.03 22:03
-
아밥맨
2010.08.04 00:51
맑은하늘님 답변 감사합니다.
그런데 COSP테이블의 TIMESTAMP값은 좀 다르게 저장이 되어있더라구요.
데이터엘리먼트로 TIMESTAMP을 사용한 타임스탬프의 경우 맑은하늘님 로직이 잘 적용되지만,
데이터엘리먼트로 RKE_HZSTMP을 사용한 타임스탬프의 경우 맑은하늘님 로직이 적용되지 않았습니다.
추정입니다만,
RKE_HZSTMP을 사용한 경우 TIMESTAMP를 GMT로 저장을 하는 것 같습니다. (RKE_TIMESTAMP_CONVERT_INPUT 사용해서 생성)
해서,
RKE_TIMESTAMP_CONVERT_OUTPUT : Convert GMT to local time/date
위 펑션을 사용하여 일자,시간을 추출하니 올바른 결과가 나오는 것 같습니다.
하지만 한가지 OUTPUT펑션에서 export 매개변수 중 I_TZONE의 값을 시스템변수가 아닌
'0'을 주었을 때 올바른 값이 나오더군요.
이부분의 이유는 좀더 살펴봐야 할 것 같아요 ^^
왜 사용하는지는 정확히는 잘 모르겠어요.
보통 convert 를 사용해서 사용할 거예요..
DATA: TIME_STAMP TYPE TIMESTAMP,
DAT TYPE D,
TIM TYPE T,
TZ TYPE TTZZ-TZONE,
DST TYPE C LENGTH 1.
TZ = SY-ZONLO.
DAT = SY-DATUM.
TIM = SY-UZEIT.
CONVERT DATE DAT TIME TIM DAYLIGHT SAVING TIME 'X'
INTO TIME STAMP TIME_STAMP TIME ZONE TZ.
WRITE : / 'Time stamp =>', TIME_STAMP.
ULINE.
CONVERT TIME STAMP TIME_STAMP TIME ZONE TZ
INTO DATE DAT TIME TIM DAYLIGHT SAVING TIME DST.
WRITE: / 'Date : ', (10) DAT,
/ 'Time : ', (8) TIM,
/ 'Zone : ', TZ.