sql >> データベース >  >> RDS >> PostgreSQL

JPAで2つの日付の間の日数をカウントします

    SELECT p FROM Period p WHERE datediff(p.to, p.from) > 10のようなクエリを実行するJPQLを使用したソリューションを探しているようです。 。

    JPQLにはそのような機能がないので、ネイティブSQLを使用することをお勧めします。 HibernateのSQLFunctionTemplateを使用してDialectを拡張する場合のアイデア とても賢かった。 DATE_PART('day', end - start)を使用するように変更したい これは、PostgreSQLで日付間の日数の違いを実現する方法であるためです。

    PostgreSQLで関数を定義し、それを条件function()で使用することもできます。 。

    'CREATE OR REPLACE FUNCTION "datediff"(TIMESTAMP,TIMESTAMP) RETURNS integer AS \'DATE_PART('day', $1 - $2);\' LANGUAGE sql;'
    
    cb.function("datediff", Integer.class, end, start);
    


    1. データベース管理者向けのトップMySQLブログおよびWebサイト

    2. PostgreSQLで一重引用符で囲まれたテキストを挿入する

    3. MySQLトリガーは、トリガーが割り当てられている同じテーブルの行を更新できません。推奨される回避策は?

    4. DBMSチュートリアル:DBMSの完全なクラッシュコース