sql >> Database >  >> RDS >> PostgreSQL

Bereken het exacte maandverschil tussen twee datums

U kunt age() . gebruiken . Als de waarde altijd minder dan 12 maanden is, dan is een methode:

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;

Een nauwkeurigere berekening houdt rekening met het jaar:

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;

Hier is een db<>viool.




  1. Witboek CBO-statistieken

  2. Optimaliseer while en SQL in foreach

  3. SQL:groeperen op uit andere tabel en resultaat omkeren

  4. Hoe gegevens te herstellen van MySQL .frm?