Я работаю над энергетическим приложением, где мы контролируем дизель-генератор и электрические счетчики завода.
У нас есть эти данные в базе данных.Ниже приведены некоторые записи в БД.
ip meter_id device_time
===========================================
100.74.61.93 s1 r1 2018-11-01 09:02:42
100.74.61.93 s1 r1 2018-11-01 09:02:57
100.74.61.93 s1 r1 2018-11-01 09:03:12
100.74.61.93 s1 r1 2018-11-01 09:03:27
100.74.61.93 s1 r1 2018-11-01 09:03:42
100.74.61.93 s1 r1 2018-11-01 09:03:57
100.74.61.93 s1 r1 2018-11-01 09:04:17
100.74.61.93 s1 r1 2018-11-01 09:04:27
100.74.61.93 s1 r1 2018-11-01 09:04:47
100.74.61.93 s1 r1 2018-11-01 09:04:57
100.74.61.93 s1 r1 2018-11-01 09:05:12
100.74.61.93 s1 r1 2018-11-01 09:05:27
100.74.61.93 s1 r1 2018-11-01 09:05:47
100.74.61.93 s1 r1 2018-11-01 09:05:57
100.74.61.93 s1 r1 2018-11-01 09:06:12
100.74.61.93 s1 r1 2018-11-01 09:06:27
100.74.61.93 s1 r1 2018-11-01 09:06:42
100.74.61.93 s1 r1 2018-11-01 09:06:57
100.74.61.93 s1 r1 2018-11-01 09:07:12
100.74.61.93 s1 r1 2018-11-01 09:07:27
100.74.61.93 s1 r1 2018-11-01 09:07:42
100.74.61.93 s1 r1 2018-11-01 09:07:57
100.74.61.93 s1 r1 2018-11-01 09:08:12
100.74.61.93 s1 r1 2018-11-01 09:08:27
100.74.61.93 s1 r1 2018-11-01 09:08:47
100.74.61.93 s1 r1 2018-11-01 09:08:57
100.74.61.93 s1 r1 2018-11-01 09:09:12
100.74.61.93 s1 r1 2018-11-01 09:09:27
100.74.61.93 s1 r1 2018-11-01 09:09:42
100.74.61.93 s1 r1 2018-11-01 09:09:57
100.74.61.93 s1 r1 2018-11-01 09:10:12
100.74.61.93 s1 r1 2018-11-01 09:10:27
100.74.61.93 s1 r1 2018-11-01 09:10:42
100.74.61.93 s1 r1 2018-11-01 09:10:57
100.74.61.93 s1 r1 2018-11-01 09:11:12
100.74.61.93 s1 r1 2018-11-01 09:11:27
100.74.61.93 s1 r1 2018-11-01 09:11:42
100.74.61.93 s1 r1 2018-11-01 09:11:57
100.74.61.93 s1 r1 2018-11-01 09:12:12
100.74.61.93 s1 r1 2018-11-01 09:12:27
100.74.61.93 s1 r1 2018-11-01 09:12:42
100.74.61.93 s1 r1 2018-11-01 09:12:57
100.74.61.93 s1 r1 2018-11-01 09:13:12
100.74.61.93 s1 r1 2018-11-01 09:13:27
100.74.61.93 s1 r1 2018-11-01 11:15:42
100.74.61.93 s1 r1 2018-11-01 09:13:42
100.74.61.93 s1 r1 2018-11-01 09:13:57
100.74.61.93 s1 r1 2018-11-01 11:15:58
100.74.61.93 s1 r1 2018-11-01 11:16:12
100.74.61.93 s1 r1 2018-11-01 11:13:42
100.74.61.93 s1 r1 2018-11-01 11:13:57
100.74.61.93 s1 r1 2018-11-01 11:14:12
100.74.61.93 s1 r1 2018-11-01 11:14:27
100.74.61.93 s1 r1 2018-11-01 11:14:42
100.74.61.93 s1 r1 2018-11-01 11:14:57
100.74.61.93 s1 r1 2018-11-01 11:15:12
100.74.61.93 s1 r1 2018-11-01 11:15:27
100.74.61.93 s1 r1 2018-11-01 11:16:27
100.74.61.93 s1 r1 2018-11-01 11:16:42
100.74.61.93 s1 r1 2018-11-01 11:16:57
100.74.61.93 s1 r1 2018-11-01 11:17:13
100.74.61.93 s1 r1 2018-11-01 11:17:27
100.74.61.93 s1 r1 2018-11-01 11:17:42
100.74.61.93 s1 r1 2018-11-01 11:17:57
100.74.61.93 s1 r1 2018-11-01 11:18:12
100.74.61.93 s1 r1 2018-11-01 11:18:28
100.74.61.93 s1 r1 2018-11-01 11:18:42
100.74.61.93 s1 r1 2018-11-01 11:18:58
100.74.61.93 s1 r1 2018-11-01 11:19:12
100.74.61.93 s1 r1 2018-11-01 11:19:27
100.74.61.93 s1 r1 2018-11-01 11:19:42
100.74.61.93 s1 r1 2018-11-01 11:19:58
100.74.61.93 s1 r1 2018-11-01 11:20:13
100.74.61.93 s1 r1 2018-11-01 11:20:27
100.74.61.93 s1 r1 2018-11-01 11:20:43
100.74.61.93 s1 r1 2018-11-01 11:20:58
100.74.61.93 s1 r1 2018-11-01 11:21:13
100.74.61.93 s1 r1 2018-11-01 11:21:28
100.74.61.93 s1 r1 2018-11-01 11:21:43
100.74.61.93 s1 r1 2018-11-01 11:21:58
100.74.61.93 s1 r1 2018-11-01 11:48:58
100.74.61.93 s1 r1 2018-11-01 11:49:13
100.74.61.93 s1 r1 2018-11-01 11:49:28
100.74.61.93 s1 r1 2018-11-01 11:49:43
100.74.61.93 s1 r1 2018-11-01 11:49:58
100.74.61.93 s1 r1 2018-11-01 11:50:13
100.74.61.93 s1 r1 2018-11-01 11:50:28
100.74.61.93 s1 r1 2018-11-01 11:50:43
100.74.61.93 s1 r1 2018-11-01 11:50:58
100.74.61.93 s1 r1 2018-11-01 11:51:13
100.74.61.93 s1 r1 2018-11-01 11:51:28
100.74.61.93 s1 r1 2018-11-01 11:51:43
100.74.61.93 s1 r1 2018-11-01 11:51:58
100.74.61.93 s1 r1 2018-11-01 11:52:13
100.74.61.93 s1 r1 2018-11-01 11:52:28
100.74.61.93 s1 r1 2018-11-01 11:52:43
100.74.61.93 s1 r1 2018-11-01 11:52:58
100.74.61.93 s1 r1 2018-11-01 11:53:13
100.74.61.93 s1 r1 2018-11-01 11:53:28
100.74.61.93 s1 r1 2018-11-01 11:53:43
100.74.61.93 s1 r1 2018-11-01 11:53:58
100.74.61.93 s1 r1 2018-11-01 11:54:13
100.74.61.93 s1 r1 2018-11-01 11:54:28
100.74.61.93 s1 r1 2018-11-01 11:54:43
100.74.61.93 s1 r1 2018-11-01 11:54:58
100.74.61.93 s1 r1 2018-11-01 11:55:13
100.74.61.93 s1 r1 2018-11-01 11:55:28
100.74.61.93 s1 r1 2018-11-01 11:55:43
100.74.61.93 s1 r1 2018-11-01 11:55:58
100.74.61.93 s1 r1 2018-11-01 11:56:13
100.74.61.93 s1 r1 2018-11-01 11:56:28
Поскольку вы можете проверить вышеуказанные записи из базы данных, каждая строка имеет device_time
, что означает, что в то время дизельный генератор работал.
Теперь я хочу посчитать время в формате, подобном 01 days, 2 hours, 10 min
, который скажет мне, что за сколько времени он работал?
Я написал запрос, который дал мне результат.
select
count(device_timestamp) * '1 minute'::interval as operatingtime
from
(
select
time_bucket('1 min',
device_time at time zone 'Asia/Kolkata') as device_timestamp
from
public.schneider_new
where
meter_id in ('s1')
and device_time >= '2018-11-01T00:00:00.000'
and device_time <= now()
group by
device_timestamp
order by
device_timestamp as ) as tab
Вывод:
0 лет 0 мес 0 дней 30 часов 28 минут 0,00 с
Это дает мнерезультат, но я не хочу 0 years 0 mons 0 secs
в вышеприведенном выводе.
А также, если часы> 24, т. е. в данном случае 30 часов, результат должен быть равен 1 day 6 hours 28 mins
.
Где я иду не так?или есть ли другой способ подсчета времени, в течение которого ГД работал в течение заданного периода времени?
ОБНОВЛЕНИЕ:
Я попытался выполнить запрос с этим
(count(device_timestamp)::numeric/60)/24 * '1 day'::interval as operatingtime
Вывод:
0 лет 0 мес. 1 день 6 часов 28 мин. 0,00 с.
Я получилправильный вывод, т.е. 1 days 6 hours 28 mins
, единственное, что я сейчас ищу, это удалить другой 0 years 0 mons 0.00 secs
.