我有一个用户表,其中包含与用户相关的各种详细信息,例如 ID、姓名、职业、电子邮件、手机、出生日期。我想编写一个查询来获取明天生日的用户。
工作 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 或 Native 查询。
-谢谢。
最佳答案
您可以将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
)
) ;
关于MySQL 查询 Hibernate 或 native 查询生日通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49968324/