0

我是 PostgreSQL(timescaleDB) 的新手,正在为我的应用程序编写时间序列查询。

我遇到的情况是,我必须每天在某个日期范围(12 月 1 日至 12 月 26 日)中获取选定时间范围内的数据(例如(上午 10 点到下午 6 点))。

以下是我的查询。

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使用此查询获取数据。

我尝试了很多方法让它工作,但没有一个解决方案奏效。

请帮助我了解正确的方法。

4

1 回答 1

0

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

于 2018-12-26T07:46:37.677 回答