How to convert a date (DATS) to a timestamp (TIMESTAMP) in ABAP?
Use the CONVERT DATE ... INTO TIME STAMP statement. Time zone is required.
DATA ld_date TYPE d VALUE '20240315'.
DATA ld_time TYPE t VALUE '093000'.
DATA ld_ts TYPE timestamp.
CONVERT DATE ld_date
TIME ld_time
INTO TIME STAMP ld_ts
TIME ZONE 'UTC'.
" ld_ts = 20240315093000
TIME is optional — if omitted, defaults to '000000' (midnight).
Check sy-subrc after the statement:
sy-subrc | Meaning |
|---|---|
0 | Success |
4 | TIME ZONE was initial — silently fell back to UTC |
8 | Unknown time zone key |
12 | Invalid date or time value |
Reverse — timestamp back to date and time:
DATA ld_date_out TYPE d.
DATA ld_time_out TYPE t.
CONVERT TIME STAMP ld_ts
TIME ZONE 'UTC'
INTO DATE ld_date_out
TIME ld_time_out.
Initial date '00000000' is not valid — CONVERT DATE returns sy-subrc = 12. Always check the date is populated before converting.