2011年10月21日金曜日

PostgreSQL interval

PreparedStatementでintervalを使う時にはまったのでメモ。

例えば、
now() + interval '10 days'
というようなことをしたい時、
「interval '10 days'」の部分を

1)
「?」にする。
PGInterval a = new PGInterval();
a.setDays(10);
PreparedStatementでsetObject(n, a);

2)
「cast (? as interval)」にする。
PreparedStatementでsetString(n, "10 days");

1か2のどちらかで出来ました。