использование метки времени эпохи Unix в запросе MySQL

Я пытаюсь пометить аккаунты как неактивные (user_type = '1') которые не вошли (user_lastvisit) в течение последних 90 дней как неактивные.

user_type сообщает phpbb, если аккаунт 0 = активный или же 1 = неактивно

user_lastvisit последний раз пользователь заходил на доску phpbb. Хранится в формате времени эпохи.

Проблема: я не могу понять, как добавить 90 дней в user_lastvisit (хранится в формате эпохи) и посмотреть, меньше ли оно текущего времени.

$result = mysql_query("UPDATE phpbb_users SET user_type = '1' WHERE DATE_ADD(FROM_UNIXTIME(user_lastvisit), INTERVAL 90 DAY) < NOW() AND user_type = '0'")
or die(mysql_error());

Обновление: я отредактировал запрос, основываясь на предложении ниже.

1

Решение

Взгляни на FROM_UNIXTIME а также DATE_ADD.
С помощью этих двух функций вы сможете преобразовать отметку времени в дату и затем использовать ее для добавления 90 дней.
Пример:

SELECT * FROM yourtable WHERE DATE_ADD(FROM_UNIXTIME(user_lastvisit), INTERVAL 90 DAY) > NOW()
2

Другие решения

Вместо того, чтобы работать непосредственно в базе данных, что не рекомендуется разработчиками phpBB, вы можете сделать это через панель управления администратора.

Войдите в ACP и выберите Users and groups Вкладка. Внизу под User security выберите «Удалить пользователей»

в Last active раздел установить раскрывающийся список Before затем введите дату 90 дней назад (как ГГГГ-ММ-ДД)

Ниже этого, убедитесь, что Delete pruned user posts установлен в No, а также Deactivate or delete установлен в Deactivate

Ударь Submit Кнопка, и это отключит все учетные записи, не использованные в течение последних 90 дней.

0

По вопросам рекламы [email protected]