九月 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()
函数来计算年龄。