ARTICLE
Accessing Character-Like Date Fields and Time Fields Numerically
Numeric access to character-like 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 character-like
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 character-like date fields or time fields.
None of the other arithmetic operations are generally advisable here.
To avoid unexpected results from these calculations, you must verify
that the content of the date or time fields is
valid .
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,
time_stamp TYPE timestamp,
day TYPE i,
hour TYPE i,
minute TYPE i,
second TYPE i,
first_day TYPE d.
GET TIME STAMP FIELD time_stamp.
CONVERT TIME STAMP time_stamp TIME ZONE sy-zonlo
INTO DATE date TIME time.
first_day = date(4) <(> <)><(> <)> '0101'.
day = date - first_day + 1.
second = ( time - t`000000` ).
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.
Documentation extract taken from SAP system, � Copyright SAP AG. All rights reserved