Вычисление возраста PostgreSQL по типу даты

#postgresql

#postgresql

Вопрос:

У меня есть следующая таблица:

 CREATE TABLE public.employees
(
employee_id integer NOT NULL,
name text NOT NULL,
date_of_birth date,
address text,
email text,
CONSTRAINT employees_pkey PRIMARY KEY (employees_id),
CONSTRAINT employees_email_key UNIQUE (email)
)
 

Как я смогу указать имя каждого сотрудника с указанием его возраста в выходных данных?

Спасибо.

Комментарии:

1. Существует функция age, которая используется для вычисления возраста путем передачи параметра. выберите employee_id, имя, возраст (date_of_birth) из employees.

2. age() Функция описана здесь: postgresql.org/docs/current/static/functions-datetime.html

Ответ №1:

Используйте функции date_part() и age()

 SELECT name text, date_part('year',age(date_of_birth)),* FROM public.employees
 

См. Документацию по функциям даты https://www.postgresql.org/docs/current/static/functions-datetime.html

Комментарии:

1. Спасибо, я просто запутался в date_part, но вы помогли мне разобраться!

Ответ №2:

вы можете использовать age() функцию, подобную этой :

 SELECT name, EXTRACT(year FROM age(current_date,date_of_birth)) :: int as age FROM public.employees
 

Комментарии:

1. может использоваться без current date использования только поля (например age(date_of_birth) ), в любом случае это работает, и это потрясающе!

2. также вы можете использовать age('2021-01-01', date_of_birth)