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, arrival - departure AS date_difference, arrival - departure + 1 AS days 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:
Om het verschil tussen datums als dagen in PostgreSQL of Oracle te tellen, hoeft u alleen maar de ene datum van de andere af te trekken, b.v. arrival - departure
.
Maar 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:arrival - departure + 1
.