什么是在.net中节省时间的好数据类型?
使用decimal
类型或double
数据类型更合适是否更好?小时数我的意思是:
答案 0 :(得分:12)
表示数小时的好方法是使用TimeSpan:
TimeSpan hours = TimeSpan.FromHours(2);
鉴于decimal
或double
之间的选择,我可能选择double
,因为通常不会期望精确表示时间量。如果您需要小数小时的精确十进制表示(似乎不太可能),请使用decimal
。
您还可以考虑将其存储为整数,例如秒,毫秒或刻度。
答案 1 :(得分:6)
存储小时数的最佳数据类型是为其设计的数据类型 - TimeSpan。
它有一些方法可以让你添加/减去/转换它。
至于数据库中的存储,它实际上取决于你使用它的原因以及需要什么样的分辨率。
我会使用time
数据类型 - 因为它将保存范围:
00:00:00.0000000至23:59:59.9999999
但是,如果您需要在此字段中保留超过24小时,则可能需要考虑保留分钟数的tinyint
或int
(假设这是您需要的最长时间分辨率) )。
答案 2 :(得分:4)
在SQL Server中使用INT或DECIMAL。 TIME不是存储持续时间的理想选择,因为TIME定义了24小时内的时间点,而持续时间只是一个整数或十进制值。您不能使用TIME值进行加法或减法,并且没有明显的方法可以使用TIME来存储大于24小时的持续时间。
答案 3 :(得分:1)