The IS8601_CONVERT call routine converts an ISO 8601 interval to datetime and duration values, or converts datetime and duration values to an ISO 8601 interval. The IS8601_CONVERT call routine might generate an incorrect value. One example of a call that produces an incorrect result is shown below:
call is8601_convert('intvl','start','PT5H/2015-12-25T10:00:00',start);
The four arguments to the call routine above indicate the following:
The result should be 25DEC2015:05:00, since the ending time should be 5 hours after the starting time. The incorrect time of 24DEC2015:19:00 is computed because the ending hour offset of 10:00:00 is subtracted, as well as the duration offset of 05:00:00 when computing the start time. Only the duration time should be subtracted.
There is currently no circumvention for this problem.