玩转PostgreSQL(六):Date Functions(方法)
PostgreSQL Date Functions
概览
如果你想节省时间,直接看此图
以下说明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
当前日期是2022-10-24
,使用AGE 方法计算,他/她的年龄将是:
SELECT current_date,
AGE(timestamp '2000-01-01');
date | AGE
------------+-------------------------
2022-10-24 | 22 years 10 mons 23 days
(1 row)
?PostgreSQL AGE() 方法示例
我们将使用如下表结构作为演示表
假设我们想要查询入职时间最长的十位员工的信息,我们可以借助AGE()
方法来查询计算
SELECT staff_id,
name,
AGE(join_date) AS duration
FROM staff
WHERE join_date IS NOT NULL
ORDER BY duration DESC
LIMIT 10;
在上面的代码中中,使用AGE()
函数计算工作年限,基于当前时间和join_date
列来计算。
代码输出如下:
staff_id | name | duration
-----------+-------+------------------------
1337 |Daff | 49 years 5 mons 17 days
9353 |ZZr | 36 years 9 mons 26 days
3 |Furry | 14 years 3 mons 20 days
77 |Tom | 13 years 11 mons 26 days
15 |JAck | 13 years 11 mons 5 days
773 |Yagao | 5 years 6 mons 24 days
417 |Hope | 4 years 10 mons 24 days
1242 |Missing| 4 years 7 mons 24 days
434 |369 | 3 years 11 mons 5 days
838 |Kanavi | 3 years 11 mons 5 days
(10 rows)