3

関数の実行時間(ミリ秒単位)をSQLフィールドに保存する必要があります。どのデータ型を使用する必要がありますか?

4

3 に答える 3

5

私はintあなたに最適なタイプだと思います。

于 2011-03-14T09:16:06.580 に答える
3

標準の32ビット整数(またはRDBMSに近いもの)を使用します。RDBMSにタイムスパンの特定のタイプがある場合は、それを使用しますが、私が知っているすべてのRDBMSには、タイムスタンプのようなデータ型しかありません。

追加:49日を超えるビットには32ビット整数で十分です。それより長く必要な場合は、より大きなデータ型を使用する必要がありますが、ミリ秒の精度が必要になるとは思えません。2番目の精度では、約136年間有効です。それ以上のものが必要な場合は、より大きな問題があります。

于 2011-03-14T09:16:43.197 に答える
0

経過時間を 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

于 2011-03-14T19:52:00.910 に答える