我想转换现有的查询,寻找即将到来的生日使用jOOQ。我原来的查询 - 使用MySQL,有点简单化 - 是寻找即将到来的生日与jOOQ
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?我不太关心目前的格式,我只想了解如何得到相同的结果。