📅  最后修改于: 2023-12-03 15:07:49.429000             🧑  作者: Mango
在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;