Я работаю над сайтом, который обрабатывает бесплатные подписки, и теперь мне понравится, как отменить подписки после 30 дней бездействия, я знаю, что это нужно делать с помощью cron-заданий, но я не знаю, как считать 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 .