PostgreSQL 17.9
AGE([timestamp1, ]timestamp2)- [ ]необязательная часть
- timestamp1
- Более поздняя дата, по умолчанию текущая дата (CURRENT_DATE)timestampНеобязательный
- timestamp2
- Более ранняя дата, которая вычитаетсяtimestamp
Возвращаемое значение
Интервал (interval) в годах, месяцах и днях; отрицательный, если timestamp1 раньше timestamp2
Примеры
Разница между двумя датами
PostgreSQL 17.9
SELECT AGE('2022-12-05', '2012-06-12');Возраст членов семьи на сегодня
PostgreSQL 17.9
SELECT member_name,
AGE(birthday) AS age
FROM FamilyMembers;Подробности
С одним аргументом возраст считается от полуночи текущей даты. Полные годы достают через EXTRACT(YEAR FROM AGE(birthday)).
Простое вычитание timestamp - timestamp тоже даёт интервал, но в днях и часах, без месяцев и лет: 67 days 10:00:00 вместо 2 mons 7 days 10:00:00.