PostgreSQL从日期类型计算年龄

Dan*_*l D 3 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)
)
Run Code Online (Sandbox Code Playgroud)

如何在输出中列出每个员工的姓名及其年龄?

谢谢。

Bar*_*cki 9

使用date_part()和age()函数

SELECT name text, date_part('year',age(date_of_birth)),* FROM public.employees
Run Code Online (Sandbox Code Playgroud)

请参阅以获取日期函数的文档https://www.postgresql.org/docs/current/static/functions-datetime.html


小智 5

你可以使用这样的age()功能:

SELECT name, EXTRACT(year FROM age(current_date,date_of_birth)) :: int as age FROM public.employees
Run Code Online (Sandbox Code Playgroud)