PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Policz liczbę dni między 2 datami w JPA

Wygląda na to, że szukasz rozwiązania z JPQL do wykonywania zapytań typu SELECT p FROM Period p WHERE datediff(p.to, p.from) > 10 .

Obawiam się, że w JPQL nie ma takiej funkcjonalności, więc polecam używać natywnego SQL. Twój pomysł na rozszerzenie programu Dialect o SQLFunctionTemplate Hibernate był bardzo sprytny. Wolałbym to zmienić, aby użyć DATE_PART('day', end - start) ponieważ jest to sposób na osiągnięcie różnicy dni między datami w PostgreSQL.

Możesz także zdefiniować swoją funkcję w PostgreSQL i używać jej z kryteriami 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przechowuj wynik zapytania w zmiennej używając w PL/pgSQL

  2. Ustaw na stałe ścieżkę schematu Postgresql

  3. Połącz aplikację na iPhone'a z PostgreSQL za pomocą Libpq

  4. Jak zwiększyć maksymalną liczbę połączeń w PostgreSQL

  5. Jak dodać po usunięciu ograniczeń kaskadowych?