2011-07-12 82 views
0

我有这个mySQL语法,每更新表users和列skills_mod_time每次页面重新加载。 $sql = "UPDATE users SET skills_mod_time = CURRENT_TIMESTAMP";mySQL从0更新时间戳

如何更改而不是使用CURRENT_TIMESTAMP来使用计数时间戳。 例如,列skills_mod_time默认为0。如果页面在10秒后重新载入,我希望秒部分为10,而不是当前将0更改为当前时间的方式。

+1

'CURRENT_TIMESTAMP()'将始终给出当前时间戳。如果您在10秒钟后调用它,时间戳将会提前。你需要什么不工作? –

+0

我有另外一列是'int',每增加一个模块就会被解锁。模块按时间解锁。如果'skills_mod_time'大于设定的时间,'int'加1,'skills_mod_time'设回0。 – cnotethegr8

回答

0

听起来你想记录“登录后的秒数”,或类似的东西,而不是“最后的活动”。为此,您应该创建一个名为login_time或类似的列,并且只在用户登录时才更新。您可能仍想跟踪最后活动时间,就像现在这样,以达到会话过期的目的。

然后,如果您有这两列login_timelast_activity,则可以通过从login_time和last_activity之间减去另一列来获得秒数。或者您可以通过从NOW()减去login_time来获得登录后的时间。

我希望这会回答你的问题 - 如果没有,请澄清你的问题。

0

您可以使用TIMESTAMPDIFF函数取两个时间戳的差值 像 更新用户设置的skills_mod_time = TIMESTAMPDIFF(MINUTE,skills_mod_time,CURRENT_TIMESTAMP);