sql >> Databáze >  >> RDS >> PostgreSQL

Vypočítejte přesný měsíční rozdíl mezi dvěma daty

Můžete použít age() . Pokud je hodnota vždy menší než 12 měsíců, pak jedna metoda je:

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;

Přesnější výpočet bere v úvahu 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;

Zde je db<>hudlík.




  1. Vyberte Náhodný záznam a Aktualizovat stejný záznam v jednom dotazu?

  2. Jak funguje funkce MID() v MySQL

  3. Materializovaný pohled a tabulka se stejným názvem

  4. JDBC Metada získá informace o omezeních