postgresql oracle级别列到postgres的转换

ktca8awb  于 2023-01-25  发布在  PostgreSQL
关注(0)|答案(1)|浏览(138)

我有一个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
li9yvcax

li9yvcax1#

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

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

相关问题