在 Intellij Spring Boot 的 psql 中根据生日计算年龄

Calculate age from birthdate in psql in Intellij Spring Boot

我将 Intellij 与 Spring Boot 一起使用。在我的 PSQL 数据库中,我有一个名为 dob(出生日期)的列,我想使用 @Query 注释从出生日期中提取该人的年龄,并获取所有年龄超过 60 岁的男性。我已经尝试这样做但是没有结果。你有什么建议吗?

public interface PersonRepo extends JpaRepository<Person, Long> {
    Person findByUsername(String username);

    @Query("select new com.example.personservice.dto.MalesCovidOverSixty(p.gender,count(p.gender)) " +
            "from Person p " +
            "where p.gender='Male' " +
            "and p.covid='t' " +
            "and age(p.dob,current_date)>'20' " +
            "group by p.gender " +
            "order by count(p.gender) desc")
    List<MalesCovidOverSixty>findMalesCovidOverSixty();
    }

在 Postman 中,它给了我空的 brancets []。 在 Person.class 中,dob 被设置为 LocalDate。 我的数据库中有一个超过 20 岁的男性,所以我一开始就尝试了这个。

好的找到答案了!我 post 以防其他人遇到同样的问题。

"and extract(year from(age(current_date, p.dob)))>'60' " +