DB2 Version 9.7 for Linux, UNIX, and Windows

TIMESTAMPDIFF scalar function

Read syntax diagramSkip visual syntax diagram
>>-TIMESTAMPDIFF--(--expression--,--expression--)--------------><

The schema is SYSFUN.

Returns an estimated number of intervals of the type defined by the first argument, based on the difference between two timestamps.

The first argument can be either INTEGER or SMALLINT. Valid values of interval (the first argument) are:
1
Fractions of a second
2
Seconds
4
Minutes
8
Hours
16
Days
32
Weeks
64
Months
128
Quarters
256
Years

The second argument is the result of subtracting two timestamps and converting the result to CHAR(22). The string value must not have more than 6 digits to the right of a decimal point. In a Unicode database, if a supplied argument is a graphic string, it is first converted to a character string before the function is executed.

The result of the function is INTEGER. The result can be null; if the argument is null, the result is the null value.

The following assumptions may be used in estimating a difference:
  • There are 365 days in a year.
  • There are 30 days in a month.
  • There are 24 hours in a day.
  • There are 60 minutes in an hour.
  • There are 60 seconds in a minute.

These assumptions are used when converting the information in the second argument, which is a timestamp duration, to the interval type specified in the first argument. The returned estimate may vary by a number of days. For example, if the number of days (interval 16) is requested for the difference between '1997-03-01-00.00.00' and '1997-02-01-00.00.00', the result is 30. This is because the difference between the timestamps is 1 month, and the assumption of 30 days in a month applies.

Example:

The following example returns 4277, the number of minutes between two timestamps:
   TIMESTAMPDIFF(4,CHAR(TIMESTAMP('2001-09-29-11.25.42.483219') -
     TIMESTAMP('2001-09-26-12.07.58.065497')))