2011-01-01 12 views
0

まで、私は、このデータを持つテーブルを持っている:取得数は、次のイベント

[ID] [event_name] [last_event] 
1  stats   2011-01-01 01:47:32 

last_eventはタイムスタンプです。このイベントは48時間ごとに発生します(これはcronジョブです)。イベントを再度実行するまでの時間をユーザーに表示したいと思います。

は、これまで私が持っている:私は次の出現の正確な時刻と日付を与える

SELECT (lastFinish + INTERVAL 48 HOUR) FROM `cron_status` 

を:2011-01-03 01:47:321980015:私は現在の日時...(?と思う)私のUNIX時間の差を与える

SELECT ((lastFinish + INTERVAL 48 HOUR) - SYSDATE()) FROM `cron_status` 

を差し引いた場合だから私は考え出しました。 549.99:私は3600で...時間に

SELECT (((lastFinish + INTERVAL 48 HOUR) - SYSDATE())/3600) FROM `cron_status` 

を秒に変換することを分ける場合しかし、私は数字が高すぎる大きさの順序を取得します。

どこが間違っていますか?ターゲットは、次の実行までの時間数を返します。

ありがとうございました!

答えて

3

結果はtimediff() MySQLの機能を使用して、直接得ることができる。

SELECT timediff(lastFinish + INTERVAL 48 HOUR, now()) FROM cron_status; 

hh:mm:ssとして時間を表示すべきです。 lastFinishdatetimeであると仮定します。代わりに、時間で答えを得るためには

timediffarg1 - arg2ながらtimestampdiffarg2 - arg1をしないこと

SELECT timestampdiff(HOUR, now(), lastFinish + INTERVAL 48 HOUR) FROM cron_status; 

注意。

+0

完璧、ありがとうございます! – Drew

関連する問題