Мне нужно построить следующий запрос в запросе dsl:
select * from my_table where (updated_at - interval '5
hours')::date='2018-04-06' limit 10;
Но я не могу вычесть часы.Я использую Spring Framework и базу данных Postgres.
Я написал этот код для создания логического предиката:
StringTemplate dbDate =
Expressions.stringTemplate("function('DATE_TRUNC', 'day', {0})",
dateTimePath);
StringTemplate compareDate =
Expressions.stringTemplate("function('TO_DATE', {0}, {1})", value,
"YYYY-MM-dd");
new BooleanBuilder(dbDate.eq(compareDate));
Этот код в основном просто сравнивает даты из БД, а невычитая часы.Мне нужен код для вычитания часов.
Когда я пытаюсь вычесть часы следующим образом:
StringTemplate dbDate = Expressions.stringTemplate("function('DATE_TRUNC', 'day', {0} - interval '5 hours')", dateTimePath);
Это дает: неожиданный токен: интервал ошибка