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 .