我想要像這樣的年份間隔
fromdate = 15-09-2019, todate=21-09-202115-09-2019 - 31-12-2019 //為2019年
。01-01-2020 - 31-12-2020 //為2020年
01-01-2021 - 21-12-2021 //為2021年
。這樣我就能從這些間隔中獲得資料了
在這個表中,我只有2021年的數值,而沒有2019年和2020年的數值。 如果在2019年和2020年的范圍內沒有任何資料,那么它的引數Traincount和tonnage應該為0。uj5u.com熱心網友回復:
簡單地減去它們:
SELECT ('2015-01-12': 。 date - '2015-01-01'/span>::date) AS天。
結果:
days
------
11
uj5u.com熱心網友回復:
你可以試試
select extract('year' from now() - extract('year' from now() )。
uj5u.com熱心網友回復:
有一個粗暴的方法來獲得一個年度總結,那就是將資料按天分開,然后進行匯總:
select min(dte), max(dte
from generate_series('2019-09-15'::date, '2021-09-21': :date, interval '1 day') gs(dte)
group by date_trunc('year', dte) 。
然而,更有效的方法將避免聚合:
select greatest(gs.dte, v.fromdate)。
least(gs.dte interval '1 year - 1 day', v.taodate)
from (values ('2019-09-15'::date, '2021-09-21': :date) v(fromdate, todate) cross join lateral
generate_series(date_trunc('year', v.fromdate), date_trunc('year', v.todate), interval '1 year') GS(DTE);
這里是一個db<>fiddle。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/324726.html
標籤:
