[英]mysql and 30 days
我正在一个处理免费订阅的网站上工作,我想现在如何在30天不活动后取消订阅,我知道这必须通过cron-jobs完成,但我不知道如何计算30用户最后一次登录?
SELECT user_id FROM users WHERE DATE_SUB(CURDATE(),INTERVAL 30 DAY) > last_logged_in_date
你需要使用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'
如果一个人不想使用cron并使用MySQL 5.1或更高版本,则可以使用事件。 http://dev.mysql.com/doc/refman/5.1/en/create-event.html
您可以执行一个可以帮助您的查询。 实际上,MySQL文档确切地说明了你的例子。 在此页面上快速搜索“30天”: http : //dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.