PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Oblicz dokładną różnicę miesięcy między dwiema datami

Możesz użyć age() . Jeśli wartość jest zawsze mniejsza niż 12 miesięcy, jedna metoda to:

SELECT iv.product_name,
       extract(month form age('2020-12-20'::date, MAX(iv.inventory_date::date))) AS months_in_inventory
FROM inventory iv
GROUP BY 1
ORDER BY 1;

Dokładniejsze obliczenie uwzględnia rok:

SELECT iv.product_name,
       (extract(year from age('2020-12-20'::date, MAX(iv.inventory_date::date))) * 12 +
        extract(month from age('2020-12-20'::date, MAX(iv.inventory_date::date)))
       ) AS months_in_inventory
FROM inventory iv
GROUP BY 1
ORDER BY 1;

Tu to db<>skrzypce.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tworzenie bazy danych PostgreSQL

  2. jak zwrócić tabelę temp z funkcji postgres?

  3. Pakiet pg nodejs powoduje „nieprawidłową składnię wejściową dla typu json”

  4. lista schematów z rozmiarami (względnymi i bezwzględnymi) w bazie danych PostgreSQL

  5. PostgreSQL:Grupowanie, a następnie filtrowanie tabeli z warunkiem nieistnienia