什么是可以节省时间的有意义的数据类型
在 .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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
表示小时数的一个好方法是使用 TimeSpan:
如果在
decimal
或double
之间进行选择,我可能会选择double
因为通常不期望准确地表示时间量。如果您需要小数小时数的精确十进制表示(这似乎不太可能),请使用decimal
。您还可以考虑将其存储为整数,例如秒、毫秒或刻度。
A good way to represent a number of hours is to use a TimeSpan:
Given the choice between
decimal
ordouble
I'd probably go fordouble
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 usedecimal
.You could also consider storing it as an integer in for example seconds, milliseconds or ticks.
存储时间的最佳数据类型是为其设计的数据类型 - TimeSpan。
它具有允许您添加/减去/转换它的方法。
至于数据库中的存储,这实际上取决于您使用它的目的以及需要什么样的分辨率。
我将使用
time
数据类型 - 作为它将保持范围:但是,如果您需要在此字段中保留超过 24 小时,则可能需要考虑
tinyint
或int
持有分钟数(假设这是您需要的最大时间分辨率)。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:However, if you need to hold more than 24 hours in this field, you may want to consider a
tinyint
orint
holding the number of minutes (assuming that is the maximum time resolution you require).在 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.
为什么不使用TIME?
您可以使用 DATEADD 和 TIME 来更轻松地操作它:
变成
02:30:00.0000000
。等等..Why don't use TIME?
You can use DATEADD with TIME to manipulate it easier:
becomes
02:30:00.0000000
. And so on..