YEARS_BETWEEN scalar function

The YEARS_BETWEEN function returns the number of full years between the specified arguments.

Read syntax diagramSkip visual syntax diagramYEARS_BETWEEN(expression1 ,expression2)

The schema is SYSIBM.

expression1
An expression that specifies the first datetime value to compute the number of full years between two datetime values. The expression must return a value that is a DATE, TIMESTAMP, CHAR, or VARCHAR data type. In a Unicode database, the expression can also be a GRAPHIC or VARGRAPHIC data type. CHAR, VARCHAR, GRAPHIC, and VARGRAPHIC are supported by using implicit casting. If expression1 is a CHAR, VARCHAR, GRAPHIC, or VARGRAPHIC data type, it must be a valid string that is accepted by the TIMESTAMP scalar function.
expression2
An expression that specifies the second datetime value to compute the number of full years between two datetime values. The expression must return a value that is a DATE, TIMESTAMP, CHAR, or VARCHAR data type. In a Unicode database, the expression can also be a GRAPHIC or VARGRAPHIC data type. CHAR, VARCHAR, GRAPHIC, and VARGRAPHIC are supported by using implicit casting. If expression2 is a CHAR, VARCHAR, GRAPHIC, or VARGRAPHIC data type, it must be a valid string that is accepted by the TIMESTAMP scalar function.

If there is less than a full year between expression1 and expression2, the result is zero. If expression1 is later than expression2, the result is positive. If expression1 is earlier than expression2, the result is negative. If expression1 or expression2 contains time information, this information is also used to determine the number of full years. If expression1 or expression2 does not contain time information, a time of midnight (00.00.00) is used for the argument that is missing time information.

The result of the function is an INTEGER. If either argument can be null, the result can be null. If either argument is null, the result is the null value.

The YEARS_BETWEEN function is a synonym of the following expression:
YEAR( TIMESTAMP( expression1, 12 ) – TIMESTAMP( expression2, 12 ) )

Examples

  1. Set the host variable NUM_YEARS with the number of full years between 2013-02-28 and 2012-02-29.
       SET :NUM_YEARS = YEARS_BETWEEN(DATE '2013-02-28', DATE '2012-02-29')
    The host variable NUM_YEARS is set to 0 because there is 1 day less than a full year between the arguments due to the existence of February 29, 2012.
  2. Set the host variable NUM_YEARS with the number of full years between 2013-12-31 and 2001-01-01.
       SET :NUM_YEARS = YEARS_BETWEEN(DATE '2013-12-31', DATE '2001-01-01')
    The host variable NUM_YEARS is set to 12 because there is 1 day less than 13 full years between the arguments. It is positive because the first argument is later than the second argument.
  3. Set the host variable NUM_YEARS with the number of full years between 2001-01-01-00.00.00 and 2013-12-31-23.59.59.
       SET :NUM_YEARS = YEARS_BETWEEN(TIMESTAMP '2001-01-01-00.00.00',
          TIMESTAMP '2013-12-31-23.59.59')
    The host variable NUM_YEARS is set to -12 because there is 1 day less than 13 full years between the arguments. It is negative because the first argument is earlier than the second argument.