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
en het aantal dagen van aankomst tot vertrek inclusief .
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, JULIANDAY(arrival) - JULIANDAY(departure) AS date_difference, JULIANDAY(arrival) - JULIANDAY(departure) + 1 AS days_inclusive FROM travel;
Het resultaat is:
id | vertrek | aankomst | date_difference | dagen |
---|---|---|---|---|
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 JULIANDAY()
. om het verschil tussen datums te tellen functie, die het aantal dagen telt sinds de middag in Greenwich op 24 november 4714 v. Chr. Je gebruikt de JULIANDAY(date)
voor elk van de twee data; trek ze gewoon af met een minteken (-):
JULIANDAY(arrival) - JULIANDAY(departure)
In de meeste gevallen is wat je echt wilt het aantal dagen vanaf de eerste date tot de tweede date inclusief . Dan moet je 1 dag bij het verschil in dagen optellen:
JULIANDAY(arrival) - JULIANDAY(departure) + 1.