関数の実行時間(ミリ秒単位)をSQLフィールドに保存する必要があります。どのデータ型を使用する必要がありますか?
3 に答える
私はint
あなたに最適なタイプだと思います。
標準の32ビット整数(またはRDBMSに近いもの)を使用します。RDBMSにタイムスパンの特定のタイプがある場合は、それを使用しますが、私が知っているすべてのRDBMSには、タイムスタンプのようなデータ型しかありません。
追加:49日を超えるビットには32ビット整数で十分です。それより長く必要な場合は、より大きなデータ型を使用する必要がありますが、ミリ秒の精度が必要になるとは思えません。2番目の精度では、約136年間有効です。それ以上のものが必要な場合は、より大きな問題があります。
経過時間を 2 つの列 (秒は 32 ビット、ミリ秒int
は 16 ビット) に格納することを検討してください。smallint
これは約 68 年の範囲をカバーし、1 行あたり 6 バイトを使用します。
または、経過時間をmoney
データ型で秒として保存すると便利です。小数点以下 4 桁の精度を格納し、範囲は c です。-2^3 から +2^63 - 1、より正確には -922,337,203,685,477.5808) から +922,337,203,685,477.5807 まで。負の値を差し引くと、+922,337,203,685,477.5807 秒で約 2900 万年になります。を使用money
すると、1行あたり8バイトかかります。
またはdecimal(p,q)
データ型。全体の精度p
と小数点以下の桁数を選択しますq
。必要なストレージは、 の値に応じて 5、9、13、または 17 バイトですp
。