如何计算每天create_time和update_time之间的总time_spent时间并根据日期显示

时间:2017-11-03 10:40:05

标签: postgresql timestamp

这是 access_log表,在此表中我们有两列, create_time update_time

create_time         | update_time
--------------------+------------------
2017-11-02 08:46:14 | 2017-11-02 08:46:14
2017-11-02 05:51:13 | 2017-11-02 07:36:18
2017-11-02 11:42:29 | 2017-11-02 11:42:29
2017-11-02 11:50:28 | 2017-11-02 11:50:28
2017-11-02 05:50:59 | 2017-11-02 06:30:29
2017-11-02 06:19:24 | 2017-11-02 09:25:14
2017-11-03 05:54:17 | 2017-11-03 09:53:15
2017-11-03 07:38:23 | 2017-11-03 08:30:53
2017-11-03 07:38:00 | 2017-11-03 10:31:26

使用PostgreSQL,我们需要计算每天 create_time update_time 之间的总 time_spent 时间,并根据日期显示。

然而, time_spent = update_time - create_time

 create_time  | time_spent
--------------+------------
2017-11-02    | 05:30:22
2017-11-03    | 07:44:51

2 个答案:

答案 0 :(得分:0)

假设时间戳列的类型为timestamptimestamptz,您可以计算sum(update_time - create_time)并按date_trunc('day', create_time)分组。

答案 1 :(得分:0)

这样的事情:

SELECT create_time::date AS day, SUM(update_time - create_time)
  FROM access_log 
 GROUP BY day;