📅  最后修改于: 2023-12-03 15:23:15.489000             🧑  作者: Mango
在 PostgreSQL 中可以使用内置函数来方便地计算两个日期之间的月份。
extract
函数可以方便地从日期值中提取年、月、日等信息。我们可以使用 extract
函数来计算两个日期之间的月份差距。
SELECT extract(year from age(date2, date1)) * 12 + extract(month from age(date2, date1))
FROM table;
其中,date1
表示起始日期,date2
表示结束日期。age
函数用于计算两个日期之间的时间间隔。
extract(year from age(date2, date1))
表示两个日期之间的年份差距,乘以 12 即可得到月份差距。extract(month from age(date2, date1))
则表示两个日期之间的月份差距。将两者相加即可得到总的月份差距。
下面是一个示例代码,已按照 markdown 格式进行标注:
-- 创建表格
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name TEXT NOT NULL,
hire_date DATE NOT NULL,
term_date DATE NOT NULL
);
-- 添加示例数据
INSERT INTO users (name, hire_date, term_date)
VALUES
('Alice', '2022-01-01', '2022-04-01'),
('Bob', '2021-11-01', '2022-02-01'),
('Charlie', '2020-01-01', '2021-12-01'),
('Dave', '2019-01-01', '2020-01-01');
-- 计算月份差距
SELECT name, extract(year from age(term_date, hire_date)) * 12 + extract(month from age(term_date, hire_date))
FROM users;
输出结果如下:
┌──────────┬─────────┐
│ name │ ?column? │
├──────────┼─────────┤
│ Alice │ 3 │
│ Bob │ 3 │
│ Charlie │ 23 │
│ Dave │ 12 │
└──────────┴─────────┘