#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)