gpt4 book ai didi

postgresql - 计算PostgreSql中时间列的总和

转载 作者:行者123 更新时间:2023-11-29 12:44:43 24 4
gpt4 key购买 nike

任何人都可以建议我,在 POSTGRESQL 中查找时间字段总和的最简单方法。我刚刚找到了 MYSQL 的解决方案,但我需要 POSTGRESQL 版本。

MySQL:https://stackoverflow.com/questions/3054943/calculate-sum-time-with-mysql

SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(timespent))) FROM myTable;

演示数据

id   time 
1 1:23:23
2 4:00:23
3 9:23:23

期望的输出

14:47:09

最佳答案

你想要的,是不可能的。但你可能误解了 time type : 它代表一天中的一个精确时间点。添加两次(或更多次)没有多大意义。 f.ex. '14:00' + '14:00' = '28:00'(但一天中没有第 28 个小时)。

您可能想要的是 interval (表示时间间隔;小时、分钟甚至年)。 sum() 支持 interval 参数。

如果你使用间隔,就这么简单:

SELECT sum(interval_col) FROM my_table;

虽然,如果您坚持使用 time 类型(但您没有理由这样做),您可以将其转换为 interval 以使用它进行计算:

SELECT sum(time_col::interval) FROM my_table;

但同样,结果将是interval,因为time 值不能超过一天中的第 24 小时。

注意:PostgreSQL 甚至会为您进行转换,因此 sum(time_col) 也应该可以工作,但结果是 interval也是这种情况。

关于postgresql - 计算PostgreSql中时间列的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30487420/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com