PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Đếm số ngày giữa 2 ngày trong JPA

Có vẻ như bạn đang tìm kiếm giải pháp với JPQL để thực hiện các truy vấn như SELECT p FROM Period p WHERE datediff(p.to, p.from) > 10 .

Tôi e rằng không có chức năng như vậy trong JPQL vì vậy tôi khuyên bạn nên sử dụng SQL gốc. Ý tưởng của bạn nếu mở rộng Dialect với SQLFunctionTemplate của Hibernate rất thông minh. Tôi muốn thay đổi nó để sử dụng DATE_PART('day', end - start) vì đây là cách để đạt được sự khác biệt giữa các ngày với PostgreSQL.

Bạn cũng có thể xác định hàm của mình trong PostgreSQL và sử dụng nó với tiêu chí 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. Ký tự đại diện PostgreSQL LIKE cho bất kỳ danh sách từ nào

  2. GroupingError:ERROR:cột phải xuất hiện trong mệnh đề GROUP BY hoặc được sử dụng trong một hàm tổng hợp

  3. Làm cách nào để bạn tạo một chuỗi ngẫu nhiên phù hợp với ID phiên trong PostgreSQL?

  4. Rails:Triển khai đến Heroku, Nhiều vấn đề

  5. Hàm LEAST () trong PostgreSQL