我想保存游戏的持续时间。类似于1:43:00
或0:32:12
的内容。
如果我使用的是Microsoft SQL Server 2008 R2,我应该选择哪种数据类型?
答案 0 :(得分:3)
使用整数类型,只存储您所关心的最小精度单位的数量(在本例中为秒)。您的客户端程序代码应该担心格式化它。因此,对于您的两个样本值,存储的数据将为6180
和1932
。
要显示值,C#(例如)将使用类似TimeSpan.FromSeconds().ToString()
答案 1 :(得分:2)
答案 2 :(得分:2)
我只会存储秒数。通常存储两个日期就足够了,但我认为这将是您在游戏本身或每个会话中跟踪的内容。
答案 3 :(得分:1)
最好存储游戏的开始和结束时间,并根据需要动态计算持续时间。这样,您可以更改开始和/或结束时间,而无需显式更新持续时间。
至于你的问题,我会使用int数据类型并以分钟为单位存储持续时间。通过在几分钟内存储它,您可以轻松地将其转换为几小时。 DATEDIFF函数已经返回INT,因此您不需要进行任何其他操作。
DECLARE @TotalMinutes INT
SELECT @TotalMinutes = DATEDIFF(MINUTE, StartTime, EndTime)