我要做的是查询数据库中的表格,以便在他们激活帐户后14天发送欢迎电子邮件...
成功发送电子邮件后,我会设置flag = 0,以便将来不再发送电子邮件。
我不知道如何将activation_date
DATETIME与14天期间进行比较......
答案 0 :(得分:1)
你可以使用datediff:
如果激活的日期= 14,请选择行:
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html
WHERE 14 = DATEDIFF(activation_date, $today)
答案 1 :(得分:0)
您可以在查询中将您的activation_date与DATE_SUB(NOW(),INTERVAL 14天)进行比较。
答案 2 :(得分:0)
使用datediff()函数,这是一个示例,看看它是如何工作的:http://sqlfiddle.com/#!2/a2581/7851
Select '2013-04-10',
case
when datediff( now() , '2013-04-10' ) = 14
then 'Send eMail'
else 'Don''t send eMail'
end
as SendeMail
UNION ALL
Select '2013-04-11',
case
when datediff( now() , '2013-04-11' ) = 14
then 'Send eMail'
else 'Don''t send eMail'
end
as SendeMail
UNION ALL
Select '2013-04-15' ,
case
when datediff( now() , '2013-04-15' ) = 14
then 'Send eMail'
else 'Don''t send eMail'
end
as SendeMail
当然你可以在WHERE声明中使用它......
WHERE datediff( now() , '2013-04-11' ) = 14
使用now()
功能获取当前日期。我的示例日期(2013-04-11)应替换为您的activation_date
列。
答案 3 :(得分:0)
您可以在where子句
中使用date_sub函数where activation_date > date_sub(now() ,interval 14 day) and flag <> 0
示例代码here
答案 4 :(得分:0)
SELECT * FROM my_table WHERE DATEDIFF( NOW() , activation_date ) = 14 AND active = 1 AND msg_welcome = 0
这是我需要的查询!非常感谢你们......只需要修改一下你的建议。