Probleem:
U heeft twee kolommen van het datumtype en u wilt het verschil daartussen berekenen.
Voorbeeld:
In de travel tabel, zijn er drie kolommen:id , departure , en arrival . U wilt het verschil berekenen tussen arrival en departure , of het aantal dagen vanaf arrival inclusief vertrek.
De travel tabel ziet er als volgt uit:
| id | vertrek | aankomst |
|---|---|---|
| 1 | 25-03-2018 | 05-04-2018 |
| 2 | 2019-09-12 | 23-09-2019 |
| 3 | 2018-07-14 | 2018-07-14 |
| 4 | 05-01-2018 | 2018-01-08 |
Oplossing:
SELECT id, departure, arrival, DATEDIFF(arrival, departure) AS date_difference, DATEDIFF(arrival, departure) + 1 AS days_inclusive FROM travel;
Het resultaat is:
| id | vertrek | aankomst | date_difference | days_inclusive |
|---|---|---|---|---|
| 1 | 25-03-2018 | 05-04-2018 | 11 | 12 |
| 2 | 2019-09-12 | 23-09-2019 | 11 | 12 |
| 3 | 2018-07-14 | 2018-07-14 | 0 | 1 |
| 4 | 05-01-2018 | 2018-01-08 | 3 | 4 |
Discussie:
Gebruik de DATEDIFF(enddate, startdate) om het verschil tussen datums in MySQL te tellen. functie. Het verschil tussen startdate en enddate wordt uitgedrukt in dagen. In dit geval is de enddate is arrival en de startdate is departure .
In de meeste gevallen wilt u echter het aantal dagen vanaf de eerste date tot de tweede date inclusief . U moet 1 dag bij het verschil optellen:DATEDIFF(arrival, departure) + 1 .