ABAP Keyword Documentation → ABAP − Reference → Processing Internal Data → Date and Time Processing → Date Fields and Time Fields → Access to Date Fields and Time Fields
Numeric Access to Date Fields and Time Fields
Numeric access to date fields and time fields exploits the fact that the
conversion of the types d
and t
to numeric values produces an integer number of days or seconds. This applies particularly when using date fields and time fields in
numeric calculations, where these fields are
converted to the corresponding calculation type. This enables differences to be calculated or values
to be added or subtracted from date fields or time fields. None of the other arithmetic operations are generally advisable here. To avoid unexpected results from these calculations, the
validity of the content of the date or time fields must be verified.
Other versions: 7.31 | 7.40 | 7.54
Example
The following calculations provide the current day of the year, plus the hour, minutes, and seconds of the current time. The date and time are provided by a time stamp.
DATA: date TYPE d,
time TYPE t,
day TYPE i,
hour TYPE i,
minute TYPE i,
second TYPE i,
first_day TYPE d.
CONVERT UTCLONG utclong_current( )
INTO DATE date
TIME time
TIME ZONE sy-zonlo.
first_day = date(4) && '0101'.
day = date - first_day + 1.
second = time.
hour = second DIV 3600.
second = second - hour * 3600.
minute = second DIV 60.
second = second - minute * 60.
Example
The following calculation produces the day of the week for a date field date
containing any valid date. 1 means Monday, 2 means Tuesday, and so on.
day = ( 5 + date MOD 7 ) MOD 7 + 1.
Example
The following calculations provides the last day of the previous month.
DATA date TYPE d.
date = sy-datlo.
date+6(2) = '01'.
date = date - 1.