PostgreSQL 教程: age 函数: 计算年龄

九月 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表,如下:

PostgreSQL age Function: Rental Table Sample

假设您想获取持续时间最长的前 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_datereturn_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 文档:时间/日期函数和操作符