DATE_SUB(CURDATE(),INTERVAL 7天)

时间:2014-01-03 20:36:35

标签: mysql

我有一个脚本,可以向购物车中有物品但未完成结账的客户发送电子邮件。这是WHERe声明:

WHERE DATE_SUB(CURDATE(),INTERVAL 7 DAY) <= c.date_add 

我需要在3天后发送电子邮件(您今天将其放入购物车,您将在3天内收到提醒)。我不希望它少于3天或超过几天。但是,由于cron工作每天运行一次,因此在推入购物车后不可能正好是3天。

目前WHERE在说什么?将7改为3还是应该进行更多修改是否足够?

1 个答案:

答案 0 :(得分:0)

您可以使用DATEDIFF()

某事

WHERE DATEDIFF(CURDATE(),c.date_add) > 3

现在,由于cronjob只转发一次,用户可能会有几个小时的间隙来获取您已经提到的电子邮件,除非cron每隔一分钟运行一次。

至于使用DATE_SUB()函数是关注它的

DATE_SUB(date, INTERVAL expr unit)

因此,在您的情况下,您可以将INTERVAL expr单位设为3。