postgres dbで、jOOQを使用して、次のように定義された列を持つ行をフェッチすると
timestamp without time zone
select を実行して値を取得すると (jOOQ によって にフェッチされますjava.sql.Timestamp
)、ナノ秒が欠落していることがわかります。
たとえば、私が持っているデータベースでは:
2016-04-04 15:14:10.970048
しかし、jOOQ は値を含むタイムスタンプを返します
2016-04-04 15:14:10.0
これは、さらなる比較の問題です。どうすればこれを防ぐことができますか?
更新 リクエストに応じて、詳細を提供します。
Postgresql には次のタイプがあります。
CREATE TYPE schema.my_type AS
(
mt_page smallint,
mt_active_from timestamp without time zone,
);
ルーチンを使用して、関数を呼び出します。
DSLContext dsl = ....
MyTypeRecord [] records = Routines.myRoutine(dsl.configuration);
次に、タイムスタンプにはナノがありません
機能は次のとおりです。
CREATE OR REPLACE FUNCTION shop.myRoutine(
OUT my_types schema.my_type[]
)
RETURNS schema.my_type[] AS
$BODY$
DECLARE
BEGIN
BEGIN
SELECT ARRAY(
SELECT
ROW(a_id, a_timestamp)::schema.my_type
FROM schema.article
) INTO my_types;
END;
RETURN;
END;
$BODY$
LANGUAGE plpgsql VOLATILE SECURITY DEFINER
COST 1000;