ユーザーがサイトで費やす時間を計算する必要があります。ログアウト時間とログイン時間の違いで、「Xさんはオンラインで4時間43分過ごしました」のようになります。したがって、4時間43分を保存するために、次のように宣言しました:
duration
time NOT NULL
これは有効ですか、それともこれを保存するためのより良い方法ですか?+他のユースケースでこれを使用する必要がある他の計算があるため、DBに保存する必要があります。
秒の整数として保存するのが最善の方法です。
UPDATE
なります-すなわちduration = duration + $increment
TIME
TIME
'-838:59:59'
'838:59:59'
あなたは24時間に制限されるので、私は時間を使いません。最も簡単なのは、整数を分単位(または必要な解像度によっては秒単位)で格納することです。
両方の値をUNIX-epoch-deltaとして保存することを検討してください。
私は通常、signed(64b)bigint(2番目の解決用)、(signed)(64b)double(小数秒が必要な場合)、またはsigned(32b)int(分単位または時間単位に縮小した場合)を使用することを好みます。 。
列の名前で単位を明示的にします。たとえば、「_ epoch_minutely」のような接尾辞を付けます。たとえば、「started_epoch_minutely」、「finished_epoch_minutely」のようにします。