Ok, eu gasto muito tempo tentando fazer isso funcionar para mim, MAS FINALMENTE CONSEGUI. Deixe os futuros aventureiros e a comunidade saberem disso também.
O que funcionou para mim foi lançar no intervalo apresentado por A.H. aqui:
select current_timestamp + ( 2 || ' days')::interval;
Sua solução seria então algo assim (quando a 2ª consulta for analisada):
@Query(value = "SELECT n.* from nodes n WHERE n.node_id = 10510 AND n.last_good_ping > CURRENT_DATE - ( :interval )\\:\\:interval ", nativeQuery = true)
Ou para a terceira consulta (que é exatamente como fiz funcionar no meu caso)
@Query(value = "SELECT n.* from nodes n WHERE n.node_id = 10510 AND n.last_good_ping > CURRENT_DATE - ( ?1 )\\:\\:interval", nativeQuery = true)
Observe o escape
::
torna-se \\:\\:
. Em seu SQL puro que você testaria em seu editor SQL, use ::
, mas no código do seu repositório dentro de @Query
esses sinais de lançamento precisam ser escapados (caso contrário, seu Hibernate/JPA ficará desagradado).