我有一个 cron,每天午夜后运行一些 php 和一些 mysql。我想将所有注册用户(到我的网站)发送给他们一个提醒和时事通讯的副本。但是,我想从他们注册后每 30 天执行一次。
我已经想到了这个:
SELECT * FROM users
WHERE DATE(DT_stamp) = DATE(NOW() - INTERVAL 30 DAY
但这只会在他们注册后的 30 天内有效,而不是 60 和 90 天。
实际上我想要:
注册后的天数可以被 30 整除
这样,每 30 天该用户就会在 sql 中出现一次。
有人可以帮我制定这个 WHERE 子句吗,我在 mysql where day(date1-date2) 可整除 30 中挣扎
最佳答案
DATEDIFF 函数以天为单位返回两个日期之间的差值,忽略时间:
SELECT * FROM users
WHERE DATEDIFF(DT_stamp, NOW()) % 30 = 0
关于Mysql 日期操作和整除,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18311755/