如何让用户今天过生日?

时间:2017-11-02 12:33:27

标签: mysql sql hibernate

我需要在我的申请中向用户发送生日祝福。

我有一个表User,列dateOfBirth。我需要一个查询来检索符合今天日期的出生日期的用户。

例如,如果用户的dateOfBirth1983-11-02 00:00:00,我必须向用户发送生日祝福。

提前谢谢。

5 个答案:

答案 0 :(得分:2)

选择dateOfBirth列的月份和日期与今天匹配的行。

<强>查询

select * from `users`
where MONTH(`dateOfBirth`) = MONTH(NOW())
and DAY(`dateOfBirth`) = DAY(NOW());

答案 1 :(得分:1)

你可以这样做:

SELECT * FROM User WHERE MONTH(dateOfBirth) = MONTH(NOW()) AND DAY(dateOfBirth) = DAY(NOW());

答案 2 :(得分:0)

SELECT name, email 
FROM user
WHERE MONTH(dateOfBirth) = MONTH(NOW()) AND DAY(dateOfBirth) = DAY(NOW())

因为您在hibernate标记中提出了问题。 hibernate中的上述查询将如下所示。

String hql = "FROM user  WHERE MONTH(dateOfBirth) = MONTH(NOW()) AND DAY(dateOfBirth) = DAY(NOW())";

Query q = session.createQuery(hql);

List<user> l = q.list();

答案 3 :(得分:0)

您可以通过以下简单查询来做到这一点:

SELECT Name from table_name
where EXTRACT(MONTH FROM BirthDate)=DAY(CURDATE())
and EXTRACT(DAY FROM BirthDate) = MONTH(CURDATE())

答案 4 :(得分:0)

您当前正在做的是每天(每天)从SQL中提取数据并撰写并通过电子邮件手动发送愿望。如果我建议您采用更好的方法怎么办?

有一个名为Wishing Application的应用程序,可以轻松发送生日和工作周年纪念邮件。

至少它只需要两件 excel文件,其中包含愿望详细信息(日期,姓名,电子邮件)和配置文件( application.properties ),就是这样,你很好。

此外,本地有各种options to run应用程序(命令行,前台,后台,泊坞窗,Windows Scheduler,Unix cron等)云。

应用程序为highly configurable,您可以配置各种详细信息,例如:

  • 工作簿加载选项
  • 带有愿望的图像选项。
  • SMTP配置
  • 其他应用程序级别配置,例如何时发送愿望,迟来的愿望,日志记录等。