这两个TimeSpan以24小时格式存储在数据库中。没有日期,只有TimeSpan。TimeSpan减法方法返回负值TImeSpan
Dim r As TimeSpan
Dim tsStart As TimeSpan
Dim tsEnd As TimeSpan
'tsStard is 12:27:30 (pm) this happened first
'tsEnd is 00:10:25 (am) then this happened later
'You can't store 24:10:25 in the column type Time(7)
r = tsEnd.Subtract(tsStart)
“的R = -12:17:05
是否有时间跨度的方法来得到这个权利?谢谢。
如果没有日期,并假设tsStart和tsEnd可以在不同日期参考时间,那么没有办法让它“正确”。你无法知道跨度中有多少天是正确的。此时您正在生成值,而不是计算它们。 – jball 2009-12-09 19:50:23
我正在写一个简单的应用程序来计算学生的入住和退房时间。它记录了特定日期的进入和退出时间。还有另一列只存储日期类型。 。所以,在记录中你有Date,TimeIn,TimeOut。是的,如果列TimeIn和TimeOut是DateTime类型,则会更容易。但是,我正在试验数据类型时间(7)。 – 2009-12-09 19:56:55
时间(7)占用5个字节,smalldatetime占用4个字节。如果您在一分钟以内不需要精确性,smalldatetime消耗较少的存储空间,并且可以节省长时间段的问题。就我个人而言,我仍然倾向于使用完整的DateTime来开始和结束,因为它从长期来看更健壮,每个记录6到8个字节并不是存储消耗的巨大增加。 – jball 2009-12-09 20:31:32