繁体   English   中英

mysql和30天

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM