我有一个 cron 工作,每月通过电子邮件发送用户列表。cron 每天运行并在 users 表中搜索 signup_date。我们的想法是在用户注册后 1 个月向他们发送邮件,并在他们的帐户生命周期内继续这样做。我正在考虑做这样的事情:
SELECT *
FROM users
WHERE DAYOFMONTH(signup_date) = DAYOFMONTH(now());
问题是这将错过每隔一个月在 31 日注册的用户(更不用说 2 月的闰年问题)。是否有 sql 语句可以确保每个用户在每天运行时每月至少被选中一次?我也不想在数据库中创建一个额外的字段(例如 date_last_emailed)。