0

我有一个名为 reservations 的表,其中包含 start_date 和 end_date 列。

如果 date_diff(start_date 和 end_date) 是 30,那么我需要在 end_date 之前的 8,2 和 1 天发送电子邮件。和下面一样。。

60 – 15,4 & 1 120 及以上 – 30, 8, 2 & 1...知道怎么做吗?

4

4 回答 4

0

设置 cronjob 来做这种事情。

于 2011-10-03T07:56:37.237 回答
0

您可以做的是创建 2 个表,1 个用于主要预订信息,第二个用于存储发送日期(或发送提醒日期)。

保存记录时,您将检索当前日期和 end_date 之间的差异;如果差值为 30,那么您必须在 end_date 前 8,2 和 1 天存储 send_dates;与您拥有的其他条件相同。

然后创建一个 cron 作业(每天运行)来检查 send_dates = 当前日期的第二个表。如果满足条件,则发送电子邮件。

希望这是你需要的

于 2011-10-03T08:45:13.843 回答
0

为您的查询编写 3 个单独的 sql 语句,让这些语句正常工作。

然后将这些放入php中的mysql_query中,如果行数> 0,则设置一个变量

在变量上使用 isset 到电子邮件 smtp 脚本

设置一个cron作业来每天早上检查。

于 2011-10-03T07:59:28.323 回答
0

SELECT *,DATEDIFF(CURDATE(), end_date) as DIFF FROM TABLE WHERE DATEDIFF(CURDATE(), end_date) in (1,2,8)

于 2011-10-03T08:03:13.243 回答