2014-02-21 54 views
1

我有以下查詢生成個月,某一年的列表時輸入的日期(2014-01-01):使用generate_series填充個月的名單某年的PostgreSQL

SELECT to_char(dd, 'Month') 
FROM generate_series(CAST('2014-01-01' AS DATE), date_trunc('month', now()), '1 month') as dd; 

    to_char 
----------- 
January 
February 
(2 rows) 

現在,而不是2014-01-01我只需要通過2014並得到相同的結果。

回答

2
SELECT distinct to_char(dd, 'Month') FROM generate_series(to_date('2013', 'YYYY') , date_trunc('month', now()), '1 month') as dd; 
+0

感謝,但在O/P有一月和二月 的另外2個值各 –

+0

@AmitSharad對不起,我不明白你剛纔說:'謝謝,但o/p有額外的2月1和2月價值' – Houari

+0

如果你輸入年份爲2013年,它將返回額外的一月份廣告2月,請驗證 –

2

可以apped -01-01到一年輸入:

SELECT 
    to_char(dd, 'Month') 
FROM 
    generate_series(
     ('2013' || '-01-01')::date, 
     ('2013' || '-01-01')::date + interval '1 year' - interval '1 day', 
     '1 month') as dd; 
+0

謝謝,但o/p有額外的2值1月和2月 各 –

+0

@AmitSharad請更多具體。我的查詢返回兩行,你期望不同的行數? –

+0

如果您輸入的年份爲2013年,它將返回1月份的額外廣告2月份,請驗證 –

相關問題