Función escalar DAYS_BETWEEN

La función DAYS_BETWEEN devuelve el número de días completos entre los argumentos especificados.

Read syntax diagramSkip visual syntax diagramDAYS_BETWEEN(expression1 ,expression2)

El esquema es SYSIBM.

expression1
Expresión que especifica el primer valor de fecha y hora para calcular el número de días completos entre dos valores de fecha y hora. La expresión debe devolver un valor que sea un tipo de datos DATE, TIMESTAMP, CHAR o VARCHAR. En una base de datos Unicode, la expresión puede ser un tipo de datos GRAPHIC o VARGRAPHIC. CHAR, VARCHAR, GRAPHIC, y VARGRAPHIC están soportados utilizando la conversión implícita. Si expresión1 es un tipo de datos CHAR, VARCHAR, GRAPHIC o VARGRAPHIC, debe ser una serie válida aceptada por la función escalar TIMESTAMP.
expression2
Expresión que especifica el segundo valor de fecha y hora para calcular el número de días completos entre dos valores de fecha y hora. La expresión debe devolver un valor que sea un tipo de datos DATE, TIMESTAMP, CHAR o VARCHAR. En una base de datos Unicode, la expresión puede ser un tipo de datos GRAPHIC o VARGRAPHIC. CHAR, VARCHAR, GRAPHIC, y VARGRAPHIC están soportados utilizando la conversión implícita. Si expresión2 es un tipo de datos CHAR, VARCHAR, GRAPHIC o VARGRAPHIC, debe ser una serie válida aceptada por la función escalar TIMESTAMP.

Si hay menos de un día completo entre expresión1 y expresión2, el resultado es cero. Si expresión1 es posterior a expresión2, el resultado es positivo. Si expresión1 es anterior a expresión2, el resultado es negativo. En la modalidad de compatibilidad NPS, esta función siempre devuelve un número positivo. Si expresión1 o expresión2 contiene información de hora, esta información también se utiliza para determinar el número de días completos. Si expresión1 o expresión2 no contiene información de hora, se utiliza la hora de medianoche (00.00.00) para el argumento al que le falta la información.

El resultado de la función es un INTEGER. Si algún argumento puede ser nulo, el resultado puede ser nulo. Si cualquiera de los argumentos es nulo, el resultado es el valor nulo.

ejemplos

  1. Establecer la variable host NUM_DAYS con el número de días completos entre 2012-03-03 y 2012-02-28.
       SET :NUM_DAYS = DAYS_BETWEEN(DATE '2012-03-03',
          DATE '2012-02-28')
    La variable host NUM_DAYS se establece en 4 porque se ha incurrido un día adicional para el 29 de febrero de 2012.
  2. Establecer la variable host NUM_DAYS con el número de días completos entre 2013-09-11-23.59.59 y 2013-09-01-00.00.00.
       SET :NUM_DAYS = DAYS_BETWEEN(TIMESTAMP '2013-09-11-23.59.59',
          TIMESTAMP '2013-09-01-00.00.00')
    La variable host NUM_DAYS se establece en 10 porque hay un 1 menos que los 11 días completos entre los argumentos. Es positivo porque el primer argumento es posterior al segundo argumento.
  3. Establecer la variable host NUM_DAYS con el número de días completos entre 2013-09-01-00.00.00 y 2013-09-11-23.59.59.
       SET :NUM_DAYS = DAYS_BETWEEN(TIMESTAMP '2013-09-01-00.00.00',
          TIMESTAMP '2013-09-11-23.59.59')
    La variable host NUM_DAYS se establece en -10 porque hay un 1 menos que los 11 días completos entre los argumentos. Es negativo porque el primer argumento es anterior al segundo argumento.