data
列start
とを含むテーブルがありますEnd
。列の開始と終了には、日付と時刻が次の形式で含まれます: 2012-04-06 07:43:05 。私はこれを行う必要があります: 終了 - 開始 (明らかに各行に対して) し、結果のすべての時間を合計します。[日付はおそらく開始と終了の両方で同じであるため、時間フィールドの減算のみで十分です]
これを行う簡単な方法はありますか?
私はおそらく、MySQL で UNIX_TIMESTAMP() を使用して日付を UNIX タイムスタンプに変換することでこれにアプローチします。そうすれば、必要な計算を簡単に行うことができます。
何かのようなもの:
SELECT
SUM(UNIX_TIMESTAMP(`End`) - UNIX_TIMESTAMP(`start`)) AS time_sum
FROM
data
これにより、すべての差の合計が秒単位で取得されます。
select sum(timediff(`start`, `end`)) as diff_sum
from your_table
datediff を使用して日を取得するか、timediff を使用して「01:23:45」のような時間を取得するか、秒数を返す私のお気に入りの UNIX タイムスタンプを使用できます。
UNIX_TIMESTAMP(end) - UNIX_TIMESTAMP(start) AS sec