Справочник по функциям

AGE

Аналог в MySQL:

Возвращает разницу между двумя датами в годах, месяцах и днях.

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');
age
10 years 5 mons 23 days

Возраст членов семьи на сегодня

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.

Смотрите также

Где изучить