📅  最后修改于: 2023-12-03 15:33:45.705000             🧑  作者: Mango
在 PostgreSQL 中,可以使用内置函数 AGE
获取两个日期之间的差异。AGE
函数将返回两个日期之间的时间差,以年、月、日的形式表示。
AGE(enddate, startdate)
enddate
: 结束日期startdate
:开始日期AGE
函数将返回一个 INTERVAL
数据类型,表示两个日期之间的时间差。
以下是 AGE
函数的返回值类型:
| Interval 字段 | 返回值类型 | | --- | --- | | 年 (y) | INTEGER | | 月 (m) | INTEGER | | 天 (d) | INTEGER | | 小时 (h) | INTEGER | | 分钟 (m) | INTEGER | | 秒 (s) | DOUBLE PRECISION |
以下是 AGE
函数使用示例:
SELECT AGE('2022-01-01', '2021-01-01');
该语句将返回以下结果:
1 年 0 月 0 天
以下是获取两个日期之间的差异的完整实例:
-- 创建测试表
CREATE TABLE IF NOT EXISTS test_date (
id SERIAL PRIMARY KEY,
start_date DATE,
end_date DATE
);
-- 插入数据
INSERT INTO test_date (start_date, end_date)
VALUES
('2021-01-01', '2021-01-31'),
('2021-02-01', '2021-02-28'),
('2021-03-01', '2021-03-31');
-- 查询差异
SELECT start_date, end_date, AGE(end_date, start_date) AS difference
FROM test_date;
该语句将返回以下结果:
start_date | end_date | difference
------------+------------+------------
2021-01-01 | 2021-01-31 | 30 天
2021-02-01 | 2021-02-28 | 27 天
2021-03-01 | 2021-03-31 | 30 天
使用 AGE
函数可以方便地获取两个日期之间的差异,适用于各种需要计算日期差异的情况。