oracle Level列到postgres的转换



我有一个oracle查询更改为postgres

SELECT cast(to_char(ADD_MONTHS(TRUNC(ADD_MONTHS(SYSDATE, -6),'MM'),LEVEL - 1),'MMYYYY') as number) monthid,
to_char (ADD_MONTHS(TRUNC(ADD_MONTHS(SYSDATE, -6),'MM'), LEVEL - 1),'MON-YYYY') monthdesc
From dual
CONNECT BY LEVEL <= MONTHS_ BETWEEN (SYSDATE, ADD_MONTHS (SYSDATE, -6)) + 1;

我尝试使用CTE和generate_series,但在某处卡住以获得结果集

---------------------
MONTHID     MONTHDESC 
---------------------
172022      JUL-2022 
82022       AUG-2022 
92022       SEP-2022 
102022      OCT-2022 
112022      NOV-2022 
122022      DEC-2022 
12023       JAN-2023

这将生成最近六个月的列表:

select to_char(g.dt, 'mmyyyy') as monthid,
to_char(g.dt, 'MON-yyyy') as monthdesc
from generate_series(date_trunc('month', current_date) - interval '6 month', 
date_trunc('month', current_date), interval '1 month') as g(dt)

但是,这将返回2022年7月的072022,而不是示例数据中的172022

最新更新