C言語なら俺に聞け
■ このスレッドは過去ログ倉庫に格納されています
0730デフォルトの名無しさん
2014/02/22(土) 05:20:08.12date型でもいいのかな?
create table gengo (gengo text,start date);
insert into insert into gengo (gengo,start) values ('明治','1868-9-8'),('大正','1912-7-30'),('昭和','1926-12-25'),('平成','1989-1-8');
drop function wareki(date);
create function wareki(date) returns text as
'
declare seireki alias for $1;
gengo text := ''''; year int := 0; ret text := '''';
cu cursor for
select gengo.gengo,gengo.start from gengo where start = (select max(start) from gengo where start < seireki);
rec record;
begin
open cu;
fetch cu into rec;
gengo := rec.gengo;
year := extract (year from seireki) - extract(year from rec.start) + 1;
if year = 1 then ret := gengo ||''元年'';
else ret := gengo ||year || ''年''; end if;
ret := ret || extract (month from seireki) ||''月''|| extract(day from seireki) || ''日'';
return ret;
end;
'
language 'plpgsql'
;
select wareki(current_timestamp::date);
■ このスレッドは過去ログ倉庫に格納されています