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
.