Как вычислить общее время time_spent между create_time и update_time в день и отобразить по дате

Вопрос:

Это таблица 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, нам нужно вычислить общее время time_spent между create_time и update_time в день и отобразить в соответствии с датой.

тогда как time_spent = update_time — create_time

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

Лучший ответ:

Что-то вроде этого:

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

Ответ №1

Предполагая, что столбцы временной метки имеют sum(update_time - create_time) timestamp типа или timestamptz, вы можете вычислить sum(update_time - create_time) и group by date_trunc('day', create_time).

Оцените статью
TechArks.Ru
Добавить комментарий