【发布时间】:2021-10-16 20:58:43
【问题描述】:
我需要获取 postgres 中 2 个时间戳之间的分钟差异(不包括周末(周六、周日)),但我没有得到预期的结果。
示例:
在几分钟内获得差异,但是,包括周末
SELECT EXTRACT(EPOCH FROM (NOW() - '2021-08-01 08:00:00') / 60)::BIGINT as diff_in_minutes;
$ diff_in_minutes = 17566
获取工作日的差异,不包括周六和周日
SELECT COUNT(*) as diff_in_days
FROM generate_series('2021-08-01 08:00:00', NOW(), interval '1d') d
WHERE extract(isodow FROM d) < 6;
$ diff_in_days = 10
预期:
- 从 '2021-08-12 08:00:00' 到 '2021-08-13 08:00:00' = 1440
- 从 '2021-08-13 08:00:00' 到 '2021-08-16 08:00:00' = 1440
- 从 '2021-08-13 08:00:00' 到 '2021-08-17 08:00:00' = 2880
等等……
【问题讨论】:
-
如果timestamp 1或timestamp 2在周末会有什么结果?
-
如果时间戳 1 是星期六,时间戳 2 是星期日,则应该为 0。如果时间戳 1 是 '2021-08-13 08:00:00' 而时间戳 2 是 '2021-08-16 08:00:00' 我希望在这些时间戳之间收到 1440(分钟差异)。
标签: postgresql date-arithmetic