簡體   English   中英

根據間隔查找日期

[英]find the date based on interval

以下是我的查詢。

DECLARE startdate:='12-04-2019', interval  =1 OR 3

SELECT date(d) as dt,0 as flag
FROM generate_series(date '2019-04-01', date '2020-03-31', interval '1 day') d
ORDER BY date(d)

例如:如果間隔為 1 個月,則標志將在記錄下方更新為 1,rest 為 0

    date         flag
    01-04-2019    0
    .             0
    .             0
    12-05-2019    1
    .             0
    .             0  
    12-06-2019    1
    .             0
    .             0
    12-07-2019    1
    ..            0
    31-04-2020    0

如果間隔為 3,則標志將在季度更新為 1

      date        flag
    01-04-2019    0
    .             0
    .             0
    12-07-2019    1
    .             0
    .             0  
    12-10-2019    1
    .             0
    .             0
    12-01-2020    1
    .             0
    31-04-2020    0

我真的很難得到結果。

我不確定declare的用途。 這是一個編程塊嗎?

在任何情況下,您都可以將interval乘以一個常數。 所以:

SELECT d as dt, 0 as flag
FROM generate_series(date '2019-04-01',
                     date '2020-03-31',
                     4 * interval '1 month'
                    ) d
ORDER BY d

暫無
暫無

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

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