-
AMDP에서 HANA 서버 타임존(UTC/KST) 확인하는 방법SAP 2026. 7. 8. 21:15amdp_timezone_check.pdf0.08MBamdp_timezone_check.html0.01MB
AMDP에서 HANA 서버 타임존(UTC/KST) 확인하는 방법 AMDP / HANA 서버 타임존(UTC vs KST) 확인 방법 정리
Oracle → AMDP 마이그레이션 시
SYSDATE를CURRENT_DATE/CURRENT_TIMESTAMP로 단순 치환하면 자정 전후 시간대(KST 00:00~08:59)에 날짜가 하루 어긋날 수 있다. 이 문서는 원인과, 시스템에서 직접 확인하는 방법을 정리한다.1. 문제 원인 — Oracle과 HANA의 "현재 시각" 기준이 다르다
기준 타임존 Oracle SYSDATEDB 서버 OS 로컬 타임존 (온프레미스는 보통 KST) HANA CURRENT_DATE/CURRENT_TIMESTAMPHANA 서버 시스템 타임존 (SAP Basis 표준 관행상 대부분 UTC) ⚠️ KST는 UTC+9이므로, KST 기준 00:00~08:59 사이에는 UTC 날짜가 아직 전날이다. 자정을 걸치는 배치/마감 로직에서 실제 데이터 누락·조회 오류로 이어질 수 있다.2. 해결 원칙 — "오늘 날짜" 조건은 ABAP에서 넘긴다
비즈니스 로직(필터, WHERE 조건)에 쓰는 "오늘"은 AMDP 내부에서 계산하지 말고, ABAP의
sy-datum을 파라미터로 전달하는 것이 표준이다.CALL METHOD zcl_amdp=>get_today_data EXPORTING iv_date = sy-datum IMPORTING et_result = lt_result.AMDP 내부에서 굳이 "현재 KST"가 필요한 경우(예: 감사 로그 타임스탬프)에만 아래처럼 변환 함수를 보조적으로 사용한다.
DECLARE lv_kst_ts TIMESTAMP; lv_kst_ts = UTCTOLOCAL( CURRENT_UTCTIMESTAMP, 'Asia/Seoul' ); ev_datum = TO_VARCHAR( lv_kst_ts, 'YYYYMMDD' ); ev_uzeit = TO_VARCHAR( lv_kst_ts, 'HH24MISS' );💡TO_DATE(ts, 'YYYYMMDD'),TO_TIME(ts, 'HHMMSS')처럼 포맷 인자를 주는 건 "문자열 → 날짜 파싱" 용도라 TIMESTAMP 변수에는 맞지 않는다. sy-datum/sy-uzeit 대체용 CHAR8/CHAR6 문자열이 목적이면TO_VARCHAR(timestamp, format)가 정답이다. 시간 포맷은 24시간제인'HH24MISS'를 사용해야 한다 ('HH'는 12시간제라 13시 이후 값이 틀어질 수 있음).3. HANA 서버 타임존을 시스템에서 직접 확인하는 방법
3-1. SQL로 즉시 비교 (가장 빠르고 확실)
AMDP 개발 계정 권한만으로 바로 실행 가능하며, 결과가 명확하게 나온다.
SELECT CURRENT_TIMESTAMP AS db_current_ts, CURRENT_UTCTIMESTAMP AS db_utc_ts, UTCTOLOCAL(CURRENT_UTCTIMESTAMP, 'Asia/Seoul') AS kst_ts FROM DUMMY;결과 패턴 해석 db_current_ts=db_utc_tsHANA 시스템 타임존이 UTC로 설정됨 (표준 케이스) db_current_ts=kst_ts(UTC보다 9시간 빠름)HANA 시스템 타임존이 이미 KST로 설정됨 셋 다 다름 제3의 타임존, 별도 확인 필요 3-2. HANA 시스템 뷰 조회
-- 호스트 정보에서 timezone 관련 키 확인 SELECT * FROM M_HOST_INFORMATION WHERE KEY = 'timezone_name'; -- global.ini 설정값 확인 SELECT * FROM M_INIFILE_CONTENTS WHERE FILE_NAME = 'global.ini' AND KEY LIKE '%timezone%';💡 뷰/키 이름은 HANA SPS 버전에 따라 다를 수 있다.M_HOST_INFORMATION에서 안 보이면M_INIFILE_CONTENTS에서 timezone 관련 파라미터를 검색해본다.3-3. OS 레벨 확인 (Basis 협조 필요)
timedatectl cat /etc/timezone dateABAP 개발자 권한으로는 직접 접근이 어려운 경우가 많아 Basis팀 협조가 필요할 수 있다.
3-4. DBACOCKPIT / HANA Cockpit
- SAP GUI →
DBACOCKPIT트랜잭션 → Configuration/Landscape 또는 Diagnostics 메뉴에서 서버 시간 확인 - HANA Cockpit(웹) → System Overview에서도 서버 시간 표시되는 경우 있음
4. 체크리스트
- ☐ AMDP 코드에서
SYSDATE→CURRENT_DATE/CURRENT_TIME/CURRENT_TIMESTAMP로 단순 치환된 부분이 있는지 확인 - ☐ 위 3-1 SQL을 실행하여 HANA 서버가 UTC인지 KST인지 실제로 검증
- ☐ "오늘 날짜" 필터 로직은
sy-datum파라미터 전달 방식으로 전환 - ☐ 자정을 걸치는 배치/마감 로직은 우선순위 높여서 재점검
- ☐ 확인된 타임존 설정 결과를 팀 문서로 남겨 재확인 반복 방지
'SAP' 카테고리의 다른 글
ABAP/AMDP INSERT-SELECT-UPDATE 트랜잭션(LUW) 완전 정리 (0) 2026.07.09 대용량 itab 처리와 바이너리 직렬화/압축 정리 (0) 2026.07.08 AMDP 예외 처리 정리: SIGNAL, EXIT HANDLER, CX_AMDP_EXECUTION_ERROR (0) 2026.07.02 AMDP OPTIONS CDS SESSION CLIENT CURRENT - MANDT 처리 정리 (0) 2026.06.23 HANA Sequence & NEXTVAL — Oracle → AMDP 변환 정리 (0) 2026.06.18 - SAP GUI →