Добре, прекарвам много време, опитвайки се да накарам това да ми свърши работа, НО НАЙ-КРАЯ ГО РАЗБИХ. Нека бъдещите авантюристи и общността също го знаят.
Това, което работи за мен, беше кастинг към интервал, представен от A.H. тук:
select current_timestamp + ( 2 || ' days')::interval;
Вашето решение би било тогава нещо подобно (когато се анализира 2-ра заявка):
@Query(value = "SELECT n.* from nodes n WHERE n.node_id = 10510 AND n.last_good_ping > CURRENT_DATE - ( :interval )\\:\\:interval ", nativeQuery = true)
Или за 3-та заявка (което е точно как я накарах да работи в моя случай)
@Query(value = "SELECT n.* from nodes n WHERE n.node_id = 10510 AND n.last_good_ping > CURRENT_DATE - ( ?1 )\\:\\:interval", nativeQuery = true)
Моля, обърнете внимание на екранирането на ::
става \\:\\:
. Във вашия чист SQL, който бихте тествали във вашия SQL редактор, използвайте ::
, но в кода на вашето хранилище в рамките на @Query
тези знаци за хвърляне трябва да бъдат избегнати (в противен случай вашият Hibernate/JPA ще бъде недоволен).