在mysql查询中使用epoch unix时间戳

时间:2015-03-07 05:48:06

标签: php mysql phpbb

我试图将在过去90天内未登录(user_type = '1')的帐户设为无效(user_lastvisit)作为非活动状态。

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());

更新:我根据以下建议编辑了查询。

2 个答案:

答案 0 :(得分:2)

查看FROM_UNIXTIMEDATE_ADD。 使用这两个函数,您应该能够将时间戳转换为日期时间,然后使用它来添加90天。 例如:

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

答案 1 :(得分:0)

而不是直接在phpBB开发人员不推荐的数据库中工作,您可以通过管理控制面板执行此操作。

登录ACP并选择Users and groups标签。在User security下的底部选择“修剪用户”

Last active部分,将下拉框设置为Before,然后输入90天前的日期(作为YYYY-MM-DD)

在此之下,请确保Delete pruned user posts设置为NoDeactivate or delete设置为Deactivate

点击Submit按钮,这将停用过去90天内未使用的所有帐户。