sql >> Databasteknik >  >> RDS >> PostgreSQL

Beräkna exakt månadsskillnad mellan två datum

Du kan använda age() . Om värdet alltid är mindre än 12 månader är en metod:

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;

En mer exakt beräkning tar hänsyn till året:

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;

Här är en db<>fiol.




  1. Ta bort dubbletter av tabeller

  2. Ersätt null med 0 i MySQL

  3. Ge MySQL-användare bara de minsta privilegierna

  4. Finns det något sätt att ge en underfråga ett alias i Oracle 11g SQL?