sql - 如何找出一个 INTERVAL 包含另一个 INTERVAL 的次数?

标签 sql postgresql datetime timestamp intervals

我有两个 TIMESTAMP 和一个 INTERVAL。我想知道间隔有多少次适合时间戳之间的间隙。

减去两个 TIMESTAMP 得到一个 INTERVAL

SELECT TIMESTAMP '2019-01-30' -  TIMESTAMP '2019-01-29';

->
0 years 0 mons 1 days 0 hours 0 mins 0.00 secs

但我不能做 INTERVAL/INTERVAL 除法。这在异常中运行:

SELECT (TIMESTAMP '2019-01-30' -  TIMESTAMP '2019-01-29') / INTERVAL '1 hour';

我想在末尾有一个整数。 24 用于上一个示例。有没有办法在 PostgreSQL 中处理它?<​​/p>

最佳答案

您需要对两个间隔进行归一化,例如通过提取秒数然后除以它们:

SELECT extract(epoch from (TIMESTAMP '2019-01-30' -  TIMESTAMP '2019-01-29')) / extract(epoch from INTERVAL '1 hour');

关于sql - 如何找出一个 INTERVAL 包含另一个 INTERVAL 的次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54437555/

相关文章:

sql - 存储 JSON 字符串的最佳 SQL 数据类型是什么?

sql - 如何通过 Sql Query 在 Sqlite 中获取表的第一行/第一行

datetime - 将 12 小时日期/时间转换为 24 小时日期/时间

sql - 查找提供每个零件的供应商的sid

mysql - 从部分重新创建完整表

python - 从 rails 应用程序在树莓派上触发 python 脚本

ruby-on-rails - 使用 DATE_TRUNC ('week' ),如果一周的 .sum( :points) has 0?

sql - 如何创建派生属性?

python - 时区问题 - 所有时区都是本地时区?

python - 从 "%H:%M:%S"创建日期时间的最佳方法是什么