簡體   English   中英

以 8 小時的間隔獲取時間序列

[英]get time series in 8 hours of interval

我正在使用以下查詢生成一個時間序列。

SELECT * from (
    select * from generate_series(
        date_trunc('hour', '2021-11-13 10:01:38'::timestamp),
        '2021-12-13 10:01:38'::timestamp,
        concat(480, ' minutes')::interval) as t(time_ent)) as t
    where t."time_ent" between '2021-11-13 10:01:38'::timestamp and '2021-12-13 10:01:38'::timestamp

它會給我 output 如下所示。

2021-11-13 18:00:00.000
2021-11-14 02:00:00.000
2021-11-14 10:00:00.000
2021-11-14 18:00:00.000
2021-11-15 02:00:00.000

但我需要 output 之類的。

2021-11-13 16:00:00.000
2021-11-14 00:00:00.000
2021-11-14 08:00:00.000
2021-11-14 16:00:00.000
2021-11-15 00:00:00.000

目前,時間序列小時數取決於我通過的時間戳。 在上面它給了我像02,10,18這樣的小時......但我想要像00,08,16這樣的小時......小時不應該取決於我通過查詢的時間。 我嘗試了很多東西,但沒有任何成功。

由於您的 generate_series 開始時間設置為 10:00:00,因此您的下一步將是 18:00:00,您必須從 00:00:00(迄今為止)開始您的系列賽,例如:

SELECT 
time_ent::timestamp without time zone
from (
    select * from generate_series(
        date_trunc('hour', '2021-11-13 10:01:38'::date),
        '2021-12-13 10:01:38'::timestamp ,
        concat(480, ' minutes')::interval) as t(time_ent)
        ) as t
    where t."time_ent" between '2021-11-13 10:01:38'::timestamp   and '2021-12-13 10:01:38'::timestamp 
    

結果將是:

2021-11-13 16:00:00.000
2021-11-14 00:00:00.000
2021-11-14 08:00:00.000
2021-11-14 16:00:00.000
2021-11-15 00:00:00.000
2021-11-15 08:00:00.000

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM