PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как сортирането на обекти в кофи може да бъде формулирано като валиден JPQL израз?

Първо, имате нужда от JPA начин за изчисляване на разликата между startDate и pageDate в съответната единица, което е малко трудно за формулиране, тъй като е много зависимо от базата данни. В крайна сметка ще ви трябват някои персонализирани функции или ще напишете много сложна JPQL заявка.

Изчисляването на дните между две дати в PostgreSQL е толкова лесно, колкото да направите date_part('day', t2 - t1) . За часовете вече имате нужда от date_part('day', t2 - t1) * 24 + date_part('hour', t2 - t1) и минути date_part('day', t2 - t1) * 24 * 60 + date_part('hour', t2 - t1) * 60 + date_part('minute', t2 - t1) .

За да използвате тези функции на базата данни в JPQL, можете да използвате FUNCTION синтаксис като FUNCTION('date_part', 'day', :startDate - pageDate) .

В крайна сметка ще групирате по такъв израз и ще извършите броене по id, нещо като следното

SELECT COUNT(o.id) FROM MyObject o GROUP BY FUNCTION('date_part', 'day', :startDate - o.pageDate)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL конвертира името на месеца в число

  2. Необработена заявка на PostgreSQL увисва, когато се изпълнява с TypeOrm

  3. Свързваща променлива за име на колона в PHP за заявка на Postgresql

  4. PostgreSQL:Цикъл, докато дадено условие е вярно

  5. Postgresql 9.x:Индекс за оптимизиране на заявки `xpath_exists` (XMLEXISTS)