九月 21, 2023
摘要:在本教程中,您将学习如何使用 PostgreSQL 的age()
函数来计算年龄。
目录
PostgreSQL age 函数简介
在业务应用中,我们通常需要计算年龄,例如人员的年龄、员工的服务年限等。在 PostgreSQL 中,您可以使用age()
函数来完成这些任务。
下面说明了age()
函数的语法:
age(timestamp,timestamp);
age()
函数接受两个 TIMESTAMP 值。它从第一个参数中减去第二个参数并返回一个间隔值作为结果。
请参见以下示例:
SELECT age('2017-01-01','2011-06-24');
age
-----------------------
5 years 6 mons 7 days
(1 row)
如果您想将当前日期作为第一个参数,可以按如下形式使用age()
函数:
age(timestamp);
例如,如果某人出生日期为2000-01-01
,而当前日期为2017-03-20
,则他/她的年龄将为:
SELECT current_date,
age(timestamp '2000-01-01');
date | age
------------+-------------------------
2017-03-20 | 17 years 2 mons 19 days
(1 row)
PostgreSQL age 函数示例
请参见示例数据库中的rental
表,如下:
假设您想获取持续时间最长的前 10 次租赁,您可以使用age()
函数计算,如下:
SELECT rental_id,
customer_id,
age(return_date,
rental_date) AS duration
FROM rental
WHERE return_date IS NOT NULL
ORDER BY duration DESC
LIMIT 10;
在此示例中,使用age()
函数,根据rental_date
和return_date
列的值计算租赁期限。下面显示了输出:
rental_id | customer_id | duration
-----------+-------------+-----------------
2412 | 127 | 9 days 05:59:00
14678 | 383 | 9 days 05:59:00
13947 | 218 | 9 days 05:58:00
14468 | 224 | 9 days 05:58:00
7874 | 86 | 9 days 05:58:00
11629 | 299 | 9 days 05:58:00
5738 | 187 | 9 days 05:56:00
9938 | 63 | 9 days 05:56:00
12159 | 106 | 9 days 05:55:00
3873 | 394 | 9 days 05:55:00
(10 rows)
在本教程中,您学习了如何使用 PostgreSQL 的age()
函数来计算年龄。
了解更多
PostgreSQL 教程:日期函数
PostgreSQL 文档:时间/日期函数和操作符