mysql查询到hibernate或本机查询,用于生日通知

20jt8wwn  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(694)

我有一个用户表,其中有各种细节,如身份证,姓名,职业,电子邮件,手机,出生日期有关的用户。我想写一个查询,它应该获取明天生日的用户。
工作mysql查询:

SELECT * 
FROM  user 
WHERE  DATE_ADD(DOB, INTERVAL YEAR(CURDATE())-YEAR(DOB) + IF(DAYOFYEAR(CURDATE()) > DAYOFYEAR(DOB),1,0) YEAR) BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 1 DAY);

结果:

Eg: ID  | Name  | Profession    | Email         | Mobile    | DOB
    1   | A     |   IT          | a@gmail.com   | 123       | 1987-04-23
    2   | B     |   Student     | b@gmail.com   | 234       | 1987-05-23
    3   | C     |   Actor       | c@gmail.com   | 456       | 1987-06-23

Output: 1   | A     |   IT          | a@gmail.com   | 123       | 1987-04-23

在编写hibernate或本机查询时需要帮助。
-谢谢。

djmepvbi

djmepvbi1#

你可以用 DATE_ADD()INTERVAL . 查看以下查询:

SELECT
    *
FROM
    user
where
    date(DOB)= date(
        DATE_ADD(
            now(),
            INTERVAL 1 DAY
        )
    ) and month(DOB)= month(
    DATE_ADD(
        now(),
        INTERVAL 1 DAY
    )
) ;

相关问题