10 データベースへの「時間」の格納に関する簡単な質問です。ユーザーの実行時間を00:00:00:00(時間、分、秒、ミリ秒)の形式でログに記録しています。 私はもともとそれを保存するつもりでしたTIMEが、MySQLがこのタイプのミリ秒をサポートしていないことに気付きました。 ユーザーのストップウォッチから取得した実際の時間を保存します。ユーザーが実行して終了した時間ではありません(これは挿入される前に計算されます)。 使用するのに最適なフィールドタイプは何ですか?doubleまたはのどちらかを考えfloatていましたが、うまくいくかわかりませんか? mysql best-practices timestamp — エリオット ソース
6 個人的には、持続時間には整数型を使用します 例:340,000ミリ秒は、unsigned int列では340000です。 私にとって、datetime、time、dateなどは、特定の時点のことです。その場合、340秒は意味がありません。開始date/timeすると、もちろん期間を追加できます — GBN ソース 3 intervalこの目的のためだけに標準SQL データ型があります。しかし、すべてのDBMS(およびMySQLは間違いなく)がこれをサポートしているわけではありません。 — a_horse_with_no_name 2012年 回答ありがとうございます。現在00:00:00:00の形式なので、標準形式に変換する必要がありますか?そのタイプのフォーマットを許可するように列を設定できますか? — Elliott @Elliott:表示用に、できます。それ以外の場合は単なる数値です — gbn 2012年 1 おそらくあなたのフォーマットは00:00:00.000です(または、読みやすくするためです)(ミリ秒の場合、コロンではなくドットと3桁の数字に注意してください。) — Jannes
2 測定したい時間の長さに依存します。2 ^ 32または4294967296ミリ秒より長い時間記録しない場合は、通常の符号なし整数で十分です。これは、約50日間のクロック時間に相当します。 UNIXのタイムスタンプまたはより大きな間隔を格納していた場合は、bigintの使用を検討してください。これにより、8バイトのスペース、つまり1.84467440737096e + 19ミリ秒(約5億年)の時間を記録できるようになります。 — atxdba ソース
1 MySQL 5.6.4以降を使用している場合はTIME(3)、DATETIME(3)およびTIMESTAMP(3)カラムタイプを使用して、最大6桁の小数桁を格納できます(3必要な小数桁数に置き換えます)。小数部は、ドットの後の時間文字列に追加されます。例:2018-09-08 17:51:04.781。 公式リファレンス — フィネス ソース
interval
この目的のためだけに標準SQL データ型があります。しかし、すべてのDBMS(およびMySQLは間違いなく)がこれをサポートしているわけではありません。