-1

我正在编写一个脚本来从数据库中选择所有出生月份和日期在当前月份和日期的人,并通过电子邮件向他们发送生日祝福。我需要的只是 SQL 代码,然后我会从那里获取,然后将它与我的 cron 工作联系起来。

我使用了许多无法运行的代码。我最后使用的代码是:

select name_of_staff, 
  email, 
  date_of_birth  
from staff_dossier 
WHERE month(date_of_birth) = month(now()) 
  AND dayofmonth(date_of_birth) = dayofmonth(now());

//发送邮件代码如下...

我的问题是在必要时仅提取列中的月份和日期部分,date_of_birth并使用它来确定生日问候的对象。

有人请帮帮我。

4

2 回答 2

1

如果您想获取与当前日期/月份匹配的出生月份和日期的员工列表,您应该能够使用以下函数MONTH()DAY()

select name_of_staff, email, date_of_birth  
from staff_dossier 
WHERE month(date_of_birth) = month(now()) 
  AND day(date_of_birth) = day(now());

请参阅带有演示的 SQL Fiddle

于 2013-03-04T11:52:57.947 回答
1

使用 date_format()

select name_of_staff, 
email, 
date_of_birth  
from staff_dossier
Where
date_format(date_of_birth,'%d %m') = date_format(curdate(),'%d %m');
于 2013-03-04T12:04:51.977 回答