📆 1. DATE 필드 (DATS타입)
- 타입명: DATS
- 길이: 8자리
- 형식: YYYYMMDD (예: 20250423)
- 기능:
- 날짜 연산 가능 (예: 날짜 간 차이 계산)
- 날짜 포맷으로 표시 가능 (예: WRITE date_field USING EDIT MASK '__.__.____'.)
DATA my_date TYPE DATS.
my_date = '20250423'.
WRITE: / my_date. " 출력: 20250423
🕒 2. TIME 필드 (TIMS 타입)
- 타입명: TIMS
- 길이: 6자리
- 형식: HHMMSS (예: 141530 → 14:15:30)
- 기능:
- 시간 연산 제한적 (보통 문자열로 다룸)
- 포맷 변환 가능
DATA my_time TYPE TIMS.
my_time = '093045'.
WRITE: / my_time. " 출력: 093045
그렇다면 sy-datum과 sy-uzeit는 뭘까?
🔹 SY-DATUM(오늘 날짜)
- 의미: 현재 SAP 시스템의 날짜(Date)
- 데이터 타입: DATS (8자리, YYYYMMDD)
- 예시 값: 20250423
WRITE: / '오늘 날짜는:', sy-datum.
➡ 출력: 오늘 날짜는: 20250423
🔹 SY-UZEIT(현재 시간)
- 의미: 현재 SAP 시스템의 시간(Time)
- 데이터 타입: TIMS (6자리, HHMMSS)
- 예시 값: 154530 (15시 45분 30초)
WRITE: / '현재 시간은:', sy-uzeit.
➡ 출력: 현재 시간은: 154530
날짜 차이 계산
DATA: today_date TYPE sy-datum,
base_date TYPE sy-datum VALUE '20250101',
days_diff TYPE i.
today_date = sy-datum.
days_diff = today_date - base_date.
WRITE: / '오늘 날짜:', today_date,
/ '기준 날짜:', base_date,
/ '일수 차이:', days_diff.
- sy-datum이 예를 들어 20250423일 경우
- base_date = '20250101'
- days_diff = 112 (즉, 112일 차이)
todays_date+6(2)
- +6(2)는 6번째 자리부터 2글자를 추출하겠다는 뜻!
DATA: todays_date TYPE sy-datum.
todays_date = '20250423'.
WRITE: / '년:', todays_date+0(4), "2025
/ '월:', todays_date+4(2), "04
/ '일:', todays_date+6(2). "23
- todays_date+0(4) 👉 '2025'
- todays_date+4(2) 👉 '04'
- todays_date+6(2) 👉 '23'
- todays_date가 숫자형이면 X. 꼭 문자열. (TYPE sy-datum은 문자열 기반)
함수적용하기
🌟 1. 날짜 포맷 바꾸기 (YYYYMMDD → YYYY-MM-DD)
DATA: lv_date TYPE sy-datum VALUE '20250423',
lv_formatted TYPE string.
CONCATENATE lv_date+0(4) '-' lv_date+4(2) '-' lv_date+6(2)
INTO lv_formatted.
WRITE: / '포맷 변경:', lv_formatted. " 👉 2025-04-23
🌟 2. 날짜 일부 추출해서 조건 비교
DATA: lv_date TYPE sy-datum VALUE '20250423'.
IF lv_date+4(2) = '04'.
WRITE: / '4월 데이터입니다!'.
ENDIF.
🌟 3. 파일명에 날짜 붙이기
DATA: lv_filename TYPE string,
lv_date TYPE sy-datum.
lv_date = sy-datum.
CONCATENATE 'report_' lv_date+0(4) lv_date+4(2) lv_date+6(2) '.txt'
INTO lv_filename.
WRITE: / '파일명:', lv_filename. " 👉 report_20250423.txt
🌟 4. 날짜값 가공해서 출력 (공백 제거 포함)
DATA: lv_date TYPE sy-datum VALUE '20250401',
lv_result TYPE string.
CONCATENATE lv_date+0(4) '년' lv_date+4(2) '월' lv_date+6(2) '일'
INTO lv_result
SEPARATED BY space.
CONDENSE lv_result.
WRITE: / lv_result. " 👉 2025년04월23일
🌟 5. 시간값과 함께
DATA: lv_datetime TYPE string.
CONCATENATE sy-datum+0(4) '-' sy-datum+4(2) '-' sy-datum+6(2)
sy-uzeit+0(2) ':' sy-uzeit+2(2) ':' sy-uzeit+4(2)
INTO lv_datetime
SEPARATED BY space.
WRITE: / '현재 일시:', lv_datetime. " 👉 2025-04-23 13:50:33
'SAP' 카테고리의 다른 글
SAP ABAP SELECT-OPTIONS 화면 범위 검색 입력 필드 (0) | 2025.04.23 |
---|---|
SAP ABAP Quantity & Currency Fields in Calculations (0) | 2025.04.23 |
SAP ABAP SPLIT함수 (0) | 2025.04.23 |
SAP ABAP SEARCH 함수 (0) | 2025.04.23 |
SAP ABAP Replace함수 (0) | 2025.04.23 |