Поскольку вы находитесь в Postgres, я полностью изменил дату ():
return sessionFactory.getCurrentSession().
createQuery("FROM Weather WHERE city_id = :id AND date " +
"BETWEEN current_date AND (current_date + (integer :days - 1))").
setInteger("id", city_id).setString("days", days).list();
См. http://www.postgresql.org/docs/8.2/static/functions -datetime.html