Запрос PostgreSQL для получения данных каждый день с 22:00 до 6:00 следующего дня - PullRequest
0 голосов
/ 26 декабря 2018

Я новичок в PostgreSQL (timescaleDB) и пишу запросы временных рядов для моего приложения.

У меня возникла ситуация, когда мне нужно получить данные за выбранный период времени, скажем (10с 18: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 Ответ

0 голосов
/ 26 декабря 2018

device_time between (current_date + '22:00'::time) and (current_date + 1 + '06:00'::time)

...