SQL >> Base de Datos >  >> RDS >> Mysql

Cómo calcular la diferencia entre dos fechas en MySQL

Problema:

Tiene dos columnas del tipo fecha y desea calcular la diferencia entre ellas.

Ejemplo:

En el travel tabla, hay tres columnas:id , departure y arrival . Le gustaría calcular la diferencia entre arrival y departure , o el número de días desde la arrival a la salida inclusive.

El travel la tabla se ve así:

id salida llegada
1 2018-03-25 2018-04-05
2 2019-09-12 2019-09-23
3 2018-07-14 2018-07-14
4 2018-01-05 2018-01-08

Solución:

SELECT
  id,
  departure,
  arrival,
  DATEDIFF(arrival, departure) AS date_difference,
  DATEDIFF(arrival, departure) + 1 AS days_inclusive
FROM travel;

El resultado es:

id salida llegada diferencia_fecha days_inclusive
1 2018-03-25 2018-04-05 11 12
2 2019-09-12 2019-09-23 11 12
3 2018-07-14 2018-07-14 0 1
4 2018-01-05 2018-01-08 3 4

Discusión:

Para contar la diferencia entre fechas en MySQL, use DATEDIFF(enddate, startdate) función. La diferencia entre startdate y enddate se expresa en días. En este caso, la enddate es arrival y la startdate es departure .

Sin embargo, en la mayoría de los casos, lo que realmente desea es la cantidad de días desde la primera fecha hasta la segunda fecha inclusivamente. . Debe agregar 1 día a la diferencia:DATEDIFF(arrival, departure) + 1 .