IntermediateDate & Time Functions

AGE: calculate time difference

The query

SQL
SELECT
  first_name,
  last_name,
  hire_date,
  AGE(CURRENT_DATE, hire_date) AS tenure,
  EXTRACT(YEAR FROM AGE(hire_date)) AS years,
  EXTRACT(MONTH FROM AGE(hire_date)) AS months
FROM employees
ORDER BY hire_date;
Tested against PostgreSQL 16

Note

AGE(end, start) returns an interval. AGE(date) uses CURRENT_DATE as end.

Tables referenced