Cómo contar la diferencia de fechas con un rango dado en mySql

Mahbubur Rahman Khan |

Supongamos que tengo una tabla leave_management que contiene dos columnas de fechas desde y hasta con las fechas "2016-12-11" y "2016-12-18"

Ahora quiero esos resultados para la entrada dada ...

1.
Entrada: Desde: "2016-12-7" y Hasta: 2016-12-10
Salida: la diferencia de fecha es 0 (no se encontró superposición)

2.
Entrada: Desde: "2016-12-16" y Hasta: 2016-12-18
Salida: la diferencia de fecha es 2 (este rango se superpone completamente con los datos de la tabla)

3.
Entrada: Desde: "2016-12-18" y Hasta: 2016-12-20
Salida: la diferencia de fecha es 1 (este rango se superpone parcialmente con los datos de la tabla)

aquí, fórmula de diferencia de fecha de recuento = (diferencia entre fechas dadas - recuento de superposición)

Probé una consulta como esta ...

SELECT sum((DATEDIFF(from_date, to_date)) 
FROM `leave_management` s1 
WHERE s1.from_date <='2016-12-20' AND s1.to_date >='2016-12-18'

Esto solo da una salida perfecta para las dos primeras entradas. Pero para la tercera entrada no dio la salida esperada. Por favor, ayúdame.

Gordon Linoff

Si lo entiendo correctamente, desea utilizar least()y greatest():

SELECT sum(DATEDIFF(greatest(from_date, '2016-12-18'), least(to_date, '2016-12-20')) 
FROM `leave_management` s1 
WHERE s1.from_date <='2016-12-20' AND s1.to_date >= '2016-12-18';

Una advertencia es que es posible que deba sumar / restar un día de las constantes, dependiendo de si las fechas de finalización cuentan como superposiciones.

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

Cómo obtener una lista de fechas en un rango dado con recursividad

¿Cómo seleccionar fechas donde algunas fechas de rango están en un rango dado?

Cómo obtener fechas entre un rango de fechas dado un día en SQL Server

¿Cómo comparar la fecha actual con un rango de fechas o valores de fecha discretos en MySQL?

¿Cómo generar un rango de fechas + contar fechas anteriores de otra tabla en PostgreSQL?

Cómo contar todos los datos en función del rango de fechas dado, excepto el existente, consulte la tabla a continuación

Cómo contar y trazar un número acumulativo en un rango de fechas por grupos

¿Cómo contar líneas de un archivo dentro del rango de fechas en bash?

¿Cómo contar las confirmaciones de git por usuario en un rango de fechas?

Cómo contar filas usando un rango de fechas variable proporcionado por una tabla en PostgreSQL

Generando fechas aleatorias dentro de un rango dado en pandas

Generando fechas aleatorias dentro de un rango dado en pandas

¿Cómo puedo contar la cantidad de archivos específicos dentro de un rango de fechas en la línea de comando usando bash?

¿Cómo trazar en matlab usando la función besselh con un rango dado de k (frecuencia reducida)?

Contar dispositivos por día en un rango de fechas determinado

cómo obtener toda la combinación de dos fechas con 20 minutos de diferencia en php / codeigniter o mysql

unirse a mysql en un rango de fechas

¿Cómo obtener un histograma con rango de fechas con igual intervalo en el eje X?

¿Cómo obtener un histograma con rango de fechas con igual intervalo en el eje X?

Cómo contar en un rango con la función .Find () en VBA

Rango de fechas entre dos fechas con tiempo dado

¿Cómo dividir un rango de fechas en conjuntos de 2 meses con Pandas?

Cómo contar valores en un marco de datos panda con fechas de índice específicas

¿Cómo exportar datos MYSQL con rango de fechas en Laravel?

¿Cómo crear un rango de fechas con php?

¿Cómo obtener la suma de divisores en un rango dado de manera eficiente?

¿Cómo obtener la suma de divisores en un rango dado de manera eficiente?

Shiny: ¿Cómo aislar la selección de fechas en el rango de fechas con actionButton considerando los valores predeterminados?

¿Cómo consultar filas entre un rango de fechas específico en MySQL de manera eficiente?

TOP Lista

CalienteEtiquetas

Archivo