[pgsql-jp: 29846] Re: 日付範囲内の日付を全て取得したいです
Mashiki
mashiki @ yanah.com
2003年 5月 12日 (月) 12:31:53 JST
Mashikiです。
斎見さんのアイデアにちょっと触発されてしまいました。
7.3以降であれば
/* 連続した数字を行として返す関数 */
create or replace function enumerate(int4, int4)
returns setof record as '
DECLARE
rec record;
cnt int4;
BEGIN
FOR cnt in $1..$2 LOOP
select cnt into rec;
return next rec;
END LOOP;
RETURN;
END;
' language 'plpgsql';
と、関数を定義しておき、
select '2003/01/01'::date + num
from enumerate(0, 130-1) as enum(num int4);
とか
select '2003/01/01'::date + num from enumerate(0,
('2003/5/10'::date-'2003/01/01'::date)::int4) as enum(num int4);
と検索することもできますね。
pgsql-jp メーリングリストの案内