2010-09-01 112 views
3

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

+1

你怎么知道用户上次登录的时间?我的意思是,假设你必须手动完成,你会怎么做呢? – 2010-09-01 19:17:04

+1

@Raj我花了一两秒钟才意识到你的问题背后的意图。我差点回答。 :P – Novikov 2010-09-01 19:24:13

回答

4
SELECT user_id FROM users WHERE DATE_SUB(CURDATE(),INTERVAL 30 DAY) > last_logged_in_date 
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'