Problema:
Hai due colonne del tipo data e vuoi calcolare la differenza tra loro.
Esempio:
Nel travel tabella, ci sono tre colonne:id , departure e arrival . Vorresti calcolare la differenza tra arrival e departure o il numero di giorni dall'arrival alla partenza inclusiva.
Il travel la tabella si presenta così:
| id | partenza | arrivo |
|---|---|---|
| 1 | 25-03-2018 | 05-04-2018 |
| 2 | 12-09-2019 | 23-09-2019 |
| 3 | 14-07-2018 | 14-07-2018 |
| 4 | 05-01-2018 | 08-01-2018 |
Soluzione:
SELECT id, departure, arrival, DATEDIFF(arrival, departure) AS date_difference, DATEDIFF(arrival, departure) + 1 AS days_inclusive FROM travel;
Il risultato è:
| id | partenza | arrivo | date_difference | days_inclusive |
|---|---|---|---|---|
| 1 | 25-03-2018 | 05-04-2018 | 11 | 12 |
| 2 | 12-09-2019 | 23-09-2019 | 11 | 12 |
| 3 | 14-07-2018 | 14-07-2018 | 0 | 1 |
| 4 | 05-01-2018 | 08-01-2018 | 3 | 4 |
Discussione:
Per contare la differenza tra le date in MySQL, usa DATEDIFF(enddate, startdate) funzione. La differenza tra startdate e enddate è espresso in giorni. In questo caso, il enddate è arrival e il startdate è departure .
Nella maggior parte dei casi, tuttavia, ciò che vuoi veramente è il numero di giorni dalla prima data alla seconda data inclusivamente . Devi aggiungere 1 giorno alla differenza:DATEDIFF(arrival, departure) + 1 .