ADD_SECONDS scalar function

The ADD_SECONDS function returns a timestamp value that represents the first argument plus a specified number of seconds and fractional seconds.

Read syntax diagramSkip visual syntax diagramADD_SECONDS(expression ,numeric-expression)

The schema is SYSIBM.

expression
An expression that specifies the starting timestamp. The expression must return a value that is a 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. The expression must not return a value that is a DATE (SQLSTATE 42815). If expression is a CHAR, VARCHAR, GRAPHIC, or VARGRAPHIC data type, it must be a valid string that is accepted by the TIMESTAMP scalar function
numeric-expression
An expression that specifies the number of seconds and fractional seconds to add to the starting timestamp specified by expression. The expression must return a value that is a built-in numeric, 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 the expression is not a DECIMAL(27,12), it is cast to DECIMAL(27,12) before the function is evaluated. A negative numeric value can be used to subtract seconds and fractional seconds.

The result of the function is a timestamp with the same precision as expression, if expression is a timestamp. Otherwise, the result is a TIMESTAMP(12). If any argument can be null, the result can be null; if any argument is null, the result is the null value.

Examples

  1. Assume that the current timestamp is January 31, 2007, 01:02:03.123456. Set the host variable ADD_SECOND with the current timestamp plus 1 second.
       SET :ADD_SECOND = ADD_SECONDS(CURRENT TIMESTAMP, 1)
    The host variable ADD_SECOND is set with the value representing 2007-01-31-01.02.04.123456.
  2. Assume that TIMESTAMP is a host variable with the value July 27, 1965 23:59:59.123456. Set the host variable ADD_SECOND with the value of that timestamp plus 3.123 seconds.
       SET :ADD_SECOND = ADD_SECONDS(:TIMESTAMP,3.123)
    The host variable ADD_SECOND is set with the value representing the timestamp plus 3.123 seconds, 1965-07-28-00.00.02.246456.
  3. The ADD_SECONDS function and datetime arithmetic can be used to achieve the same results. The following examples demonstrate this.
       SET :TIMESTAMPHV = TIMESTAMP '2008-2-28-23.58.59.123456' + 61.654321 SECONDS
    
       SET :TIMESTAMPHV = ADD_SECONDS(
          TIMESTAMP '2008-2-28-23.58.59.123456', 61.654321)
    In both cases, the host variable TIMESTAMPHV is set with the value '2008-02-29-00.00.00.777777'.
    Now consider the same examples but with the timestamp '2008-2-29-23.59.59.123456' as the argument.
       SET :TIMESTAMPHV = TIMESTAMP '2008-2-29-23.59.59.123456' + 61.654321 SECONDS
    
       SET :TIMESTAMPHV = ADD_SECONDS(
          TIMESTAMP '2008-2-29-23.59.59.123456', 61.654321)
    In both cases, the host variable TIMESTAMPHV is set with the value '2008-03-01-00.01.00.777777'.
  4. Assume that TIMESTAMP is a host variable with the value July 27, 1965 23:59:59.123456. Set the host variable ADD_SECOND with the value of that timestamp minus 3.123 seconds.
       SET :ADD_SECOND = ADD_SECONDS(:TIMESTAMP,-3.123)
    The host variable ADD_SECOND is set to 1965-07-27-23.59.56.000456; the value representing July 27, 1965 23:59:59.123456 minus 3.123 seconds.