在 mysql 查询中使用纪元 unix 时间戳
using an epoch unix timestamp in a mysql query
我正在尝试将过去 90 天内未登录 (user_lastvisit
) 的帐户 (user_type = '1'
) 标记为不活动。
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());
更新:我根据以下建议编辑了查询。
看看FROM_UNIXTIME and DATE_ADD。
使用这两个函数,您应该能够将时间戳转换为日期时间,然后使用它来添加 90 天。
示例:
SELECT * FROM yourtable WHERE DATE_ADD(FROM_UNIXTIME(user_lastvisit), INTERVAL 90 DAY) > NOW()
phpBB 开发人员不推荐您直接在数据库中工作,您可以通过管理控制面板执行此操作。
登录 ACP 并 select Users and groups
选项卡。在底部 User security
select `Prune users'
在 Last active
部分将下拉框设置为 Before
然后输入 90 天前的日期(YYYY-MM-DD)
在此之下,确保Delete pruned user posts
设置为No
,Deactivate or delete
设置为Deactivate
点击 Submit
按钮,这将停用过去 90 天内未使用的所有帐户。
我正在尝试将过去 90 天内未登录 (user_lastvisit
) 的帐户 (user_type = '1'
) 标记为不活动。
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());
更新:我根据以下建议编辑了查询。
看看FROM_UNIXTIME and DATE_ADD。 使用这两个函数,您应该能够将时间戳转换为日期时间,然后使用它来添加 90 天。 示例:
SELECT * FROM yourtable WHERE DATE_ADD(FROM_UNIXTIME(user_lastvisit), INTERVAL 90 DAY) > NOW()
phpBB 开发人员不推荐您直接在数据库中工作,您可以通过管理控制面板执行此操作。
登录 ACP 并 select Users and groups
选项卡。在底部 User security
select `Prune users'
在 Last active
部分将下拉框设置为 Before
然后输入 90 天前的日期(YYYY-MM-DD)
在此之下,确保Delete pruned user posts
设置为No
,Deactivate or delete
设置为Deactivate
点击 Submit
按钮,这将停用过去 90 天内未使用的所有帐户。