Oracle
 sql >> Datenbank >  >> RDS >> Oracle

So berechnen Sie die Differenz zwischen zwei Datumsangaben in PostgreSQL/Oracle

Problem:

Sie haben zwei Spalten des Datumstyps und möchten die Differenz zwischen ihnen berechnen.

Beispiel:

Im travel Tabelle gibt es drei Spalten:id , departure , und arrival . Sie möchten die Differenz zwischen arrival berechnen und departure und die Anzahl der Tage von der Ankunft bis zur Abreise einschließlich .

Die travel Tabelle sieht so aus:

id Abfahrt Ankunft
1 25.03.2018 2018-04-05
2 2019-09-12 2019-09-23
3 2018-07-14 2018-07-14
4 05.01.2018 08.01.2018

Lösung:

SELECT
  id,
  departure,
  arrival,
  arrival - departure AS date_difference,
  arrival - departure + 1 AS days
FROM travel;

Das Ergebnis ist:

id Abfahrt Ankunft date_difference Tage
1 25.03.2018 2018-04-05 11 12
2 2019-09-12 2019-09-23 11 12
3 2018-07-14 2018-07-14 0 1
4 05.01.2018 08.01.2018 3 4

Diskussion:

Um die Differenz zwischen Datumsangaben in PostgreSQL oder Oracle als Tage zu zählen, müssen Sie einfach ein Datum vom anderen subtrahieren, z. arrival - departure .

Aber in den meisten Fällen möchten Sie wirklich die Anzahl der Tage vom ersten Date bis zum zweiten Date einschließlich . Dann müssen Sie 1 Tag zu der Differenz in Tagen hinzufügen:arrival - departure + 1 .


No