1
JavaとJDBCを使用してPostgres関数にタイムスタンプの配列を渡すにはどうすればよいですか?ここでJava/JDBCを使用してタイムスタンプの配列をPostgres関数に渡す方法は?
は、関数のシグネチャです:ここで
CREATE OR REPLACE FUNCTION getlistcount(_id integer, _subs text, _download_array timestamp without time zone[], _filter integer, _fault text) RETURNS refcursor AS...
は、配列を作成するJavaコードです:
GregorianCalendar[] dataDownloads =
downloadTimes.toArray(new GregorianCalendar[downloadTimes.size()]);
Array sqlArray = conn.createArrayOf("timestamp", dataDownloads);
cstmt.setArray(4, sqlArray);
downloadTimesリストは、Java関数に渡されます。
1つのヒント:Postgres documentationに従って日付と時刻を連結する必要があります。
「TIMESTAMP WITHOUT TIME ZONE'」が表示されています。ほぼすべてのユースケースでは、 'TIMESTAMP WITH TIME ZONE'が優れています。実際の瞬間を表し、もう一方はそうではありません。 – kgrittn
@KGrittn、意味があります。ダウンロード時間からタイムゾーンを取得しています(下記参照)。タイムゾーンをタイムスタンプで保存してください。ありがとうございました! – MAbraham1