Skip to content

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.