我有一个 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/

10-12 12:34
查看更多