Encontrar próximos aniversários com jOOQ
Eu estou tentando converter uma consulta existente que procura por aniversários próximos para usar jOOQ. Minha consulta original - usando o MySQL, e um pouco simplificada - é
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)
Eu tentei expressá-lo usando o jOOQ mas falhei. Cheguei tão perto quanto
context
.selectCount()
.from(PEOPLE)
.where(
PEOPLE_DOB.add(year(currentTimestamp()).minus(year(PEOPLE_DOB)))
.between(currentTimestamp()).and(currentTimestamp().add(7)));
Infelizmente, isso se traduz em
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)
O que quebra a consulta aqui é oexpr_unit
argumento para [DATE_ADD] [date_add], que é minha consulta original éYEAR
, mas no renderizado por jOOQ éDAY
.
Como posso traduzir essa consulta para o jOOQ? Eu não me importo muito com o formato atual, só quero entender como obter o mesmo resultado.