什么是可以节省时间的有意义的数据类型

发布于 2024-09-30 06:05:35 字数 193 浏览 2 评论 0原文

在 .net 中什么是节省时间的好数据类型?

使用 decimal 类型更好还是使用 double 数据类型更合适。对于小时,我指的是以下值:

  • 2 表示两小时
  • 1.5 表示 90 分钟
  • 8.25 表示 8 小时 15 分钟。

What is a good data-type for saving hours in .net?

Is it better to use the decimal type or is the double data-type more appropriate. With hours I mean values such as:

  • 2 for two hours
  • 1.5 for 90 minutes
  • 8.25 for 8 hours and 15 minutes.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

总攻大人 2024-10-07 06:05:35

表示小时数的一个好方法是使用 TimeSpan:

TimeSpan hours = TimeSpan.FromHours(2);

如果在 decimaldouble 之间进行选择,我可能会选择 double因为通常不期望准确地表示时间量。如果您需要小数小时数的精确十进制表示(这似乎不太可能),请使用decimal

您还可以考虑将其存储为整数,例如秒、毫秒或刻度。

A good way to represent a number of hours is to use a TimeSpan:

TimeSpan hours = TimeSpan.FromHours(2);

Given the choice between decimal or double I'd probably go for double as there is typically no expectation that the amount of time is represented exactly. If you need an exact decimal representation of your fractional number of hours (which seems unlikely) then use decimal.

You could also consider storing it as an integer in for example seconds, milliseconds or ticks.

北渚 2024-10-07 06:05:35

存储时间的最佳数据类型是为其设计的数据类型 - TimeSpan

它具有允许您添加/减去/转换它的方法。

至于数据库中的存储,这实际上取决于您使用它的目的以及需要什么样的分辨率。

我将使用 time 数据类型 - 作为它将保持范围:

00:00:00.0000000 至 23:59:59.9999999

但是,如果您需要在此字段中保留超过 24 小时,则可能需要考虑 tinyintint 持有分钟数(假设这是您需要的最大时间分辨率)。

The best datatype to store hours is the one designed for it - TimeSpan.

It has methods that allow you to add/subtract/convert it.

As for storage in a database, it really depends on what you are using this for and what kind of resolution is required.

I would use the time datatype - as it will hold the range:

00:00:00.0000000 through 23:59:59.9999999

However, if you need to hold more than 24 hours in this field, you may want to consider a tinyint or int holding the number of minutes (assuming that is the maximum time resolution you require).

南汐寒笙箫 2024-10-07 06:05:35

在 SQL Server 中使用 INT 或 DECIMAL。 TIME 并不是存储持续时间的理想选择,因为 TIME 定义了 24 小时制内的时间点,而持续时间只是一个整数或小数值。您无法对 TIME 值进行加法或减法,并且没有明显的方法可以使用 TIME 来存储大于 24 小时的持续时间。

In SQL Server use INT or DECIMAL. TIME isn't really ideal for storing a duration because TIME defines a point in time within the 24 hour clock whereas duration is simply an integer or decimal value. You cannot do addition or subtraction with TIME values and there is no obvious way to use TIME to store durations greater than 24hrs.

七月上 2024-10-07 06:05:35

为什么不使用TIME

您可以使用 DATEADD 和 TIME 来更轻松地操作它:

SELECT DATEADD(minute, 30, CAST('2:00:00' AS TIME))

变成 02:30:00.0000000。等等..

Why don't use TIME?

You can use DATEADD with TIME to manipulate it easier:

SELECT DATEADD(minute, 30, CAST('2:00:00' AS TIME))

becomes 02:30:00.0000000. And so on..

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文