📜  在 sql postgresql 中计算年龄(1)

📅  最后修改于: 2023-12-03 15:07:49.429000             🧑  作者: Mango

在SQL PostgreSQL中计算年龄

在SQL PostgreSQL中,可以使用内置函数 age() 来计算年龄。

函数语法
age(timestamp)    -- 以当前日期计算年龄,返回 interval 类型
age(timestamp, timestamp)    -- 计算两个日期之间的年龄,返回 interval 类型
示例
以当前日期计算年龄

假设有一个 users 表,其中有一列是 birth_date,表示用户的生日。可以使用如下的SQL语句计算每个用户的年龄:

SELECT username, age(birth_date) AS age FROM users;

返回结果中,将会包含一个 age 列,记录每个用户的年龄。该列的类型为 interval

计算两个日期之间的年龄

假设需要计算某一事件(比如生日)和当前日期之间的年龄。可以使用如下的SQL语句:

SELECT age('1990/01/01'::DATE, CURRENT_DATE) AS age;

该语句将会返回当前日期和 1990/01/01 之间的年龄。

细节注意
  • age() 函数返回的结果是 interval 类型,如果需要将其转换成整数,可以使用 extract() 函数。例如:SELECT extract(year FROM age(birth_date)) AS age FROM users; 返回结果中,年龄将会以整数的方式显示。
  • age() 函数计算年龄时,会考虑闰年。如果需要忽略闰年,可以使用 date_part('year', interval)date_part('day', interval) 函数来进行计算。例如:SELECT date_part('year', age(birth_date)) - 1 + date_part('day', age(birth_date))::float / 365 AS age FROM users;