PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Tính toán chênh lệch tháng chính xác giữa hai ngày

Bạn có thể sử dụng age() . Nếu giá trị luôn nhỏ hơn 12 tháng, thì một phương pháp là:

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;

Một phép tính chính xác hơn sẽ tính đến năm:

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;

Tại đây là một db <> fiddle.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thứ tự có được giữ nguyên sau UNION trong PostgreSQL không?

  2. Cập nhật postgreSQL DB thông qua di chuyển EFCore trong Azure DevOps

  3. Postgres:Cách tốt nhất để di chuyển dữ liệu từ lược đồ công khai của một DB sang lược đồ mới của một DB khác

  4. LỖI:xóa trên bảng vi phạm ràng buộc khóa ngoại. Id khóa vẫn được tham chiếu từ bảng (nhiều)

  5. làm thế nào để bắt lỗi hàm pg_connect ()?