Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak obliczyć różnicę między dwiema datami w PostgreSQL/Oracle?

Problem:

Masz dwie kolumny typu daty i chcesz obliczyć różnicę między nimi.

Przykład:

W travel tabeli, są trzy kolumny:id , departure i arrival . Chcesz obliczyć różnicę między arrival i departure i liczba dni od przyjazdu do wyjazdu włącznie .

travel tabela wygląda tak:

id wyjazd przybycie
1 2018-03-25 2018-04-05
2 2019-09-12 23-09-2019
3 2018-07-14 2018-07-14
4 2018-01-05 2018-01-08

Rozwiązanie:

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

Wynik:

id wyjazd przybycie date_difference dni
1 2018-03-25 2018-04-05 11 12
2 2019-09-12 23-09-2019 11 12
3 2018-07-14 2018-07-14 0 1
4 2018-01-05 2018-01-08 3 4

Dyskusja:

Aby policzyć różnicę między datami jako dniami w PostgreSQL lub Oracle, wystarczy odjąć jedną datę od drugiej, np. arrival - departure .

Ale w większości przypadków to, czego naprawdę chcesz, to liczba dni od pierwszej do drugiej daty włącznie . Następnie należy dodać 1 dzień do różnicy w dniach:arrival - departure + 1 .


No
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wywołać funkcję lub procedurę składowaną Oracle przy użyciu frameworka trwałości wiosennej?

  2. 2 sposoby na uzyskanie dnia z randki w Oracle

  3. Iteracja zestawu wyników przy użyciu JDBC for Oracle zajmuje dużo czasu, około 16 s?

  4. Utwórz użytkownika ze wszystkimi uprawnieniami w Oracle

  5. Jak podzielić ciąg w PL/SQL?