我有一个脚本,可以向购物车中有物品但未完成结账的客户发送电子邮件。这是WHERe声明:
WHERE DATE_SUB(CURDATE(),INTERVAL 7 DAY) <= c.date_add
我需要在3天后发送电子邮件(您今天将其放入购物车,您将在3天内收到提醒)。我不希望它少于3天或超过几天。但是,由于cron工作每天运行一次,因此在推入购物车后不可能正好是3天。
目前WHERE在说什么?将7改为3还是应该进行更多修改是否足够?
答案 0 :(得分:0)
您可以使用DATEDIFF()
某事
WHERE DATEDIFF(CURDATE(),c.date_add) > 3
现在,由于cronjob只转发一次,用户可能会有几个小时的间隙来获取您已经提到的电子邮件,除非cron每隔一分钟运行一次。
至于使用DATE_SUB()函数是关注它的
DATE_SUB(date, INTERVAL expr unit)
因此,在您的情况下,您可以将INTERVAL expr单位设为3。