Что-то выглядит не совсем правильно: вы сказали, что published
- это поле date
(в базе данных, я полагаю). Затем вы используете current_timestamp
минус целочисленное значение для сравнения с полем даты. В результате вы не получаете метку времени для даты в параметре, вы просто получаете current_timestamp - 2
, что, я не думаю, представляет «два дня назад» ;-) Если вы использовали current_date
, думаю, это может сработать.
from Newspaper as newspaper where newspaper.published < current_date - :daysparam
Но, тем не менее, я бы предпочел оставить это вычисление на стороне Java, чтобы запрос был:
from Newspaper as newspaper where newspaper.published < :start_date
Это не сработает, только если вы не используете UTC на своих серверах (что вам следует).