Znajdowanie nadchodzących urodzin z jOOQ
Próbuję przekonwertować istniejące zapytanie, które szuka nadchodzących urodzin, aby użyć jOOQ. Moje pierwotne zapytanie - przy użyciu MySQL i nieco uproszczone - to
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)
Próbowałem to wyrazić za pomocą jOOQ, ale się nie udało. Jestem tak blisko jak
context
.selectCount()
.from(PEOPLE)
.where(
PEOPLE_DOB.add(year(currentTimestamp()).minus(year(PEOPLE_DOB)))
.between(currentTimestamp()).and(currentTimestamp().add(7)));
Niestety to przekłada się na
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)
To, co przerywa tutaj zapytanie, toexpr_unit
argument dla [DATE_ADD] [date_add], którym jest moje pierwotne zapytanieYEAR
, ale w tym renderowanym przez jOOQ jestDAY
.
Jak mogę przetłumaczyć to zapytanie na jOOQ? Nie dbam o aktualny format, chcę tylko zrozumieć, jak uzyskać ten sam wynik.