御茶義理の人のにっき

御茶義理の人が1998年からつらつらと書き連ねているポルトガルなどの新着情報

postgres は好きだったけど、日付周りが弱すぎる気が。理解不足か

世界の動画サイトからアニメやお笑いを一気に検索して全話見られる Ribbon Douga Network( rdn.jp )
2008/04/26
 postgresql8.3 系に 8.1 系から載せ替えたら、FATAL: unrecognized configuration parameter "redirect_stderr" とエラーを吐いて動きませんでした。マニュアルを調べてみたら、どうやら変数が変わったみたい。redirect_stderr は logging_collector へ変更らしいので、postgresql.conf を書き換えてやれば OK 。なのはわかるけど、こんなメイン設定の変数名を外国人はすぐに変えたがるので嫌い。なんで変えるかなあ。
 あと、postgres で日付の足し算の「加算部分」に変数を用いる方法が全然わからなくて、三時間ぐらい苦労しました。マニュアルを見て interval が postgres では変数型扱いというのでやっと解決しました。てっきりキャスト演算子みたいなものだとばっかり思っていたので、必死に HOGEHOGETIMESTAMP + interval diffdate みたいなことをしていてエラー連発でした。
CREATE FUNCTION fnc_example_add_date( after_id INT, before_id INT) RETURNS INTEGER AS '
	DECLARE
		temp_rec RECORD;
		div_interval interval;
	BEGIN
		SELECT EXTRACT( \'day\' FROM ad.LoginDate - bd.LoginDate ) as diff_day INTO temp_rec FROM ( SELECT * FROM UserLists WHERE USERID = after_id ) as ad,( SELECT * FROM UserLists WHERE USERID = before_id ) as bd;
		IF temp_rec IS NOT NULL THEN
			div_interval := temp_rec.diff_day * 86400;
			INSERT INTO IntervalTime( Itime ) SELECT LastLoginDate + div_interval FROM LoginLog;
		ELSE
			RETURN 0;
		END IF;
		RETURN 1;
	END
' LANGUAGE 'plpgsql';

内容は適当だけど、こんな感じです。 本当に内容は適当なので、こんな感じで function ないで使えますってだけ見てください。
 本日の気分:postgres は好きだったけど、日付周りが弱すぎる気が。理解不足か:0 時間( 計 0 時間 )

コメント

お名前
コメント

連絡先 skypeID( GochaGiri-の人 )のを no へ、人を hito に変換 | ©1998-2008 Yuumi