mysql和30天

时间:2010-09-01 19:13:55

标签: php mysql datetime cron

我正在处理一个处理免费订阅的网站,我想现在如何在30天不活动后取消订阅,我知道这必须通过cron-jobs完成,但我不知道如何用户上次登录后计数30?

4 个答案:

答案 0 :(得分:4)

SELECT user_id FROM users WHERE DATE_SUB(CURDATE(),INTERVAL 30 DAY) > last_logged_in_date

答案 1 :(得分:2)

您需要使用mysql DATE_ADD函数

SELECT DATE_ADD('YOUR DATE', INTERVAL 30 day)

有关详细信息,请参阅mysql手册http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-add

您可以在1 UPDATE语句中执行此操作

UPDATE yourTable SET active = 0 WHERE validity_date < CURRENT_DATE

当他们订阅时,您会收到付款

UPDATE yourTable SET active = 1, validity_date = DATE_ADD(CURRENT_DATE, INTERVAL 1 MONTH) WHERE id = 'somekind of id'

答案 2 :(得分:1)

如果一个人不想使用cron并使用MySQL 5.1或更高版本,可以使用事件。 http://dev.mysql.com/doc/refman/5.1/en/create-event.html

答案 3 :(得分:0)

您可以执行一个可以帮助您的查询。实际上,MySQL文档确切地说明了你的例子。在此页面上快速搜索“30天”:http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html