2013-03-04 61 views
-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列中的月和日在必要时,用它来确定生日问候去了。

请有人请帮助我。

回答

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 with Demo

+0

非常感谢。它解决了。 – Onwa 2013-03-04 19:49:26

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'); 
+0

感谢髋关节!解决了。 – Onwa 2013-03-04 19:44:23

+0

接受答案,让别人不必再看 – prasadmsvs 2013-03-05 12:15:03