2011-07-12 84 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);