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

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

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

在 PostgreSQL 中,我们可以使用 EXTRACT() 函数来获取两个日期之间的小时差。下面是一些例子:

示例
示例 1:获取两个日期之间的小时差
SELECT EXTRACT(HOUR FROM TIMESTAMP '2021-08-01 18:00:00' - TIMESTAMP '2021-08-01 12:00:00');

执行上述 SQL 语句之后,将会返回 6

示例 2:获取两个时间戳之间的小时差
SELECT EXTRACT(HOUR FROM TIMESTAMP '2021-08-01 18:00:00' - TIMESTAMP '2021-08-01 12:00:00' + INTERVAL '1 DAY');

执行上述 SQL 语句之后,将会返回 30

解析

PostgreSQL 提供了 EXTRACT() 函数用于从时间戳中提取单个字段(例如,年、月、日、小时、分钟和秒等)。该函数采用两个参数。第一个参数是我们想要从中提取的字段(例如,小时),第二个参数是要提取的时间戳。

在示例 1 中,我们从 2021 年 8 月 1 日 12:00 到 2021 年 8 月 1 日 18:00 的时间戳中提取小时数。为此,我们需要从较大的时间戳中减去较小的时间戳,并使用 EXTRACT() 函数提取小时数。

在示例 2 中,我们从 2021 年 8 月 1 日 12:00 到 2021 年 8 月 2 日 18:00 的时间戳中提取小时数。因为这两个时间戳跨越了一天,因此,我们需要将结果增加一天,以获取正确的小时数。