Поиск предстоящих дней рождения с JOOQ
Я пытаюсь преобразовать существующий запрос, который ищет предстоящие дни рождения, чтобы использовать jOOQ. Мой оригинальный запрос - с использованием MySQL и немного упрощенный -
SELECT COUNT(*)
FROM people
WHERE
DATE_ADD(people_dob, INTERVAL YEAR(CURDATE()) - YEAR(people_dob) YEAR)
BETWEEN CURDATE() and DATE_ADD( CURDATE(), INTERVAL 7 DAY)
Я пытался выразить это с помощью jOOQ, но не удалось. Я подошел как можно ближе
context
.selectCount()
.from(PEOPLE)
.where(
PEOPLE_DOB.add(year(currentTimestamp()).minus(year(PEOPLE_DOB)))
.between(currentTimestamp()).and(currentTimestamp().add(7)));
К сожалению, это переводится как
select count(*)
from `people`
where
date_add(`people`.`people_dob`, interval (extract(year from current_timestamp()) - extract(year from `people`.`people_dob`)) day)
between current_timestamp() and date_add(current_timestamp(), interval 7 day)
Что нарушает запрос здесь этоexpr_unit
аргумент для [DATE_ADD] [date_add], который является моим исходным запросомYEAR
, но в том, что предоставлено jOOQ есть.DAY
Как я могу перевести этот запрос в jOOQ? Я неМеня не волнует текущий формат, я просто хочу понять, как получить тот же результат.