2011-10-27 2 views
2

에서 날짜 시리즈 만들기 과거 날짜부터 현재 날짜까지의 일련의 날짜를 월 단위로 작성하려고합니다. 나는 이것이 8.4에서 새로운 기능으로 가능하다는 것을 알고 있지만, 나는 8.3으로 지금 붙어있다. 고정 된 날짜postgresql 8.3

을 -

나는 내가 다음 현재 날짜의 간격에서 달과 해를 추출하려고 나에게 월 단위로

SELECT date('2008-01-01') + (to_char(a,'99')||' month')::interval as date FROM generate_series(0,20) as a; 

를 얻을이 SQL을 가지고 여기 토끼 구멍 아래로 갈거야 기분이

SELECT extract( month from interval (age(current_date, date('2008-01-01'))) ); 

하지만 원하는 날짜 계열을 얻으려면 어리석은 방법이라고 생각하기 시작합니다.

답변

4

은 다음과 같이 작동 할 수 :

SELECT ('2008-01-01 0:0'::timestamp 
     + interval '1 month' * generate_series(0, months))::date 
FROM (
    SELECT (extract(year from intv) * 12 
      + extract(month from intv))::int4 AS months 
    FROM (SELECT age(now(), '2008-01-01 0:0'::timestamp) as intv) x 
    ) y 
0

경우 누군가가, 예를 들어 필요 주어진 날짜 범위 내에서 3 시간 간격 :

SELECT ('2013-01-01 0:0'::timestamp 
     + interval '1 hour' * generate_series(0, ('2013-02-01'::date - '2013-01-01'::date)*24, 3))::timestamp; 
관련 문제