📌  相关文章
📜  postgresql 获取两个日期之间的差异 - SQL (1)

📅  最后修改于: 2023-12-03 15:33:45.705000             🧑  作者: Mango

PostgreSQL 获取两个日期之间的差异 - SQL

在 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 函数可以方便地获取两个日期之间的差异,适用于各种需要计算日期差异的情况。