2011-07-12 8 views
0

私は、このページを再ロードするたびにテーブルusersとカラムskills_mod_timeを更新するこのmySQL構文を持っています。 $sql = "UPDATE users SET skills_mod_time = CURRENT_TIMESTAMP";mySQL update timestamp from 0

CURRENT_TIMESTAMPを使用する代わりに、カウントタイムスタンプを使用する代わりに、どのように変更できますか。 たとえば、列skills_mod_timeの既定値は0です。ページが10秒後にリロードされた場合、秒の部分を10にします。現在の方法の代わりに、0をこの現在の時刻に変更します。

+1

'CURRENT_TIMESTAMP()'は常に現在のタイムスタンプを与えます。 10秒後に呼び出すと、タイムスタンプは前進します。あなたがそれを必要とするために何が動作しないのですか? –

+0

別のモジュールがロック解除されるたびに1ずつ増加する 'int'という別の列があります。モジュールのロックが解除されます。 'skills_mod_time'が設定された時間より大きい場合、' int'は1だけ増加し、 'skills_mod_time'は0に戻されます。 – cnotethegr8

答えて

0

「最後のアクティビティ」ではなく、「ログイン後の秒数」などと似たように聞こえるようです。これを行うには、login_timeまたはそれに類する列を作成し、ユーザーがログインしたときに更新するだけです。セッションの有効期限のために、今のように最後の活動時間を追跡したいと思うかもしれません。

これらの2つの列がある場合は、login_timelast_activityの間で、login_timeとlast_activityの間の秒を差し引くことができます。または、login_timeからNOW()を引いてログイン後の時間を取得することもできます。

これがあなたの質問に答えることを願っています。そうでない場合は、質問を明確にしてください。

0

次の2つのタイムスタンプの差が 何か のようなUPDATEユーザーはskills_mod_time = TIMESTAMPDIFF(MINUTE、skills_mod_time、CURRENT_TIMESTAMP)に設定された値を取るためにTIMESTAMPDIFF機能を使用することができます。