web-dev-qa-db-ja.com

MySQLの保存期間-データ型?

ユーザーがサイトで費やす時間を計算する必要があります。 「Mr Xがオンラインで4時間43分費やした」のようなものを与えるのは、ログアウト時間とログイン時間の違いです。したがって、4時間43分を保存するには、次のように宣言しました:duration time NOT NULL

これは有効ですか、これを保存するより良い方法ですか? +他のユースケースでこれを使用する必要がある他の計算があるため、DBに保存する必要があります。

28
Juds

秒数を整数として保存するのが最善の方法です。

  • UPDATEはクリーンでシンプルになります-duration = duration + $increment
  • Tristramが指摘したように、TIMEフィールドの使用には 制限 があります。 "TIME値は'-838:59:59'から'838:59:59' "
  • 日/時間/分/秒の表示形式はハードコードされません。
  • 整数の「秒数」フィールドを使用すると、その他の計算の実行がほぼ確実に明確になります。
42
Riedsio

あなたは24時間に制限されるので、私は時間を使いません。最も簡単な方法は、整数を分単位(または必要な解像度に応じて秒単位)で格納することです。

0