Запрос PostgreSQL для получения данных каждый день с 22:00 до 6:00 следующего дня
Я новичок в PostgreSQL(timescaleDB) и пишу запросы временных рядов для моего приложения.
У меня возникла ситуация, когда я должен получать данные за выбранный период времени (с 10:00 до 18:00) каждый день для диапазона дат (с 1 по 26 декабря).
Ниже мой запрос, чтобы сделать это.
select
time_bucket('1 day',
device_time at time zone 'Asia/Kolkata') as device_timestamp,
round(cast(last(active_energy_delivered_kwh, device_time) - first(active_energy_delivered_kwh, device_time) as numeric), 2) as kwh
from
schneider_new
where
meter_id in ('s3')
and device_time::date between date '2018-12-01' and date '2018-12-26'
and device_time::time between time '10:00:00' and time '18:00:00'
group by
device_timestamp
Приведенный выше запрос работает нормально, и я получаю правильные данные, как я хотел.
Теперь я хочу получить данные из 10 pm tonight to 6 am tomorrow
, Как я группирую результаты по device_timestamp
т. е. в день, я не могу получить данные из 10 pm to 6 am
используя этот запрос.
Я много чего пробовал, чтобы все заработало, но ни одно из решений не сработало.
Пожалуйста, помогите мне узнать правильный подход.
1 ответ
device_time between (current_date + '22:00'::time) and (current_date + 1 + '06:00'::time
)