2017-08-18 12 views
0

私はこのコードで、今日から1月まで月のリストを生成しようとした私は、列数今日もし設定せずに、月のすべてのリストを取得することができますどのように列番号を設定する必要があり今日から1月までの月のリストを取得するには?

select now() - (interval '1' month * generate_series(0,7)) 

11月ですか?

+1

を除くきた間、毎月私は理解していない、あなたはまた、予想される出力を貼り付けることができますか?答えようとする人にとっては簡単です。 – Jeffrey04

答えて

1

私は、あなたがしたいと思う:

select * 
from generate_series(date_trunc('year', now()), date_trunc('month', now()), 
        interval '1 month') g(mon); 

あなたは今日の日付からのすべての日が後方に行く場合:

select * 
from generate_series(now(), date_trunc('year', now()), 
        interval '-1 month') g(mon); 

しかし、あなたが今日ならば、あなたがしたいと思うかについて考える必要があります8月31日で、月は2月です。

+0

今日の日付を取得するには、最後にdate_truncを追加してみますが、エラーが出ます – PinballWizard

1
with 
    __start as(
     select 
      date_trunc('month', current_timestamp)::date as start_month -- Starts from this month 
      --(date_trunc('month', current_timestamp) + '1 month'::interval)::date as start_month -- Starts from next month 
    ), 
    __end as(
     select 
      start_month, 
      (start_month + ((13 - extract(month from start_month))::text || ' months')::interval)::date as end_month -- Includes January in results 
      -- (start_month + ((12 - extract(month from start_month))::text || ' months')::interval)::date as end_month -- Does not include January 
     from 
      __start 
    ) 
select 
    generate_series(start_month, end_month, '1 month'::interval)::date as intervening_month 
from 
    __end 

ウィルの出力電流月、今1月と1月自体date

に型キャスト、私は現在の月を除くためにコメントアウトされている代替案を含め、1月

関連する問題