3

我需要将函数的执行时间(以毫秒为单位)存储在 sql 字段中。我应该使用什么数据类型?

4

3 回答 3

5

我认为这int将是最适合你的类型。

于 2011-03-14T09:16:06.580 回答
3

我会使用标准的 32 位整数(或 RDBMS 中任何接近的整数)。如果您的 RDBMS 具有特定的时间跨度类型,请使用它,但我所知道的所有 RDBMS 都只有类似时间戳的数据类型。

补充:一个 32 位整数足够49 天。如果您需要更长的时间,则必须使用更大的数据类型,但我怀疑您是否需要毫秒精度。在第二个精度下,它可以使用大约136 年。如果你需要更多,你就会遇到更大的问题。

于 2011-03-14T09:16:43.197 回答
0

您可以考虑将经过的时间存储在 2 列中(32 位int用于秒,16 位smallint用于毫秒)。这将涵盖大约 68 年的范围,每行占用 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每行将占用 8 个字节。

decimal(p,q)数据类型。选择您的整体精度p和小数位数q。所需的存储空间为 5、9、13 或 17 个字节,具体取决于p.

于 2011-03-14T19:52:00.910 回答