存储日期/时间数据:
Access 将 Date/Time 数据类型存储为双精度浮点数, (15 位小数) 。 双精度数的整数部分表示日期;小数部分表示时间。
有效日期值范围从 A.D.) 年 1 月 1 日 (日 -647,434 到 A.D.) 年 12 月 31 (2,958,465。 日期值 0 表示 1899 年 12 月 30 日。 Access 将 1899 年 12 月 30 日之前的日期存储为负数。
有效时间的值范围是从 .0 (00:00:00) 到 .99999 (23:59:59)。 数字值是按天计算的。 将数字值乘以 24 可以将该数字值转换成小时、分钟和秒。
双精度数 日期部分 实际日期 时间部分 实际时间
1.0 1 1899 年 12 月 31 日 .0 12:00:00 A.M.
2.5 2 1900 年 1 月 1 日 .5 12:00:00 P.M.
27468.96875 27468 1975 年 3 月 15 日 .96875 11:15:00 P.M.
33914.125 33914 1992 年 11 月 6 日
计算时间数据:
由于时间值存储为一天 24 小时的时间,因此当您计算的时间间隔大于 24 小时时,可能会得到格式不正确的结果。 要解决此行为,您可以创建一个用户定义的函数,以确保时间间隔的格式正确。
以下过程说明如何使用 Format 函数来设置时间间隔的格式。 此过程接受两个时间值,并将这两个值之间的间隔以几种不同的格式显示到“立即”窗口。
Function ElapsedTime(endTime As Date, startTime As Date)
Dim strOutput As String
Dim Interval As Date
' 计算时间间隔.
Interval = endTime - startTime
' 以秒为单位格式化并打印时间间隔.
strOutput = Int(CSng(Interval * 24 * 3600)) & " Seconds"
Debug.Print strOutput
' 以分钟和秒为单位格式化并打印时间间隔.
strOutput = Int(CSng(Interval * 24 * 60)) & ":" & Format(Interval, "ss") _
& " Minutes:Seconds"
Debug.Print strOutput
' 以小时、分钟和秒为单位格式化并打印时间间隔.
strOutput = Int(CSng(Interval * 24)) & ":" & Format(Interval, "nn:ss") _
& " Hours:Minutes:Seconds"
Debug.Print strOutput
' 以天、小时、分钟和秒为单位格式化并打印时间间隔.
strOutput = Int(CSng(Interval)) & " days " & Format(Interval, "hh") _
& " Hours " & Format(Interval, "nn") & " Minutes " & _
Format(Interval, "ss") & " Seconds"
Debug.Print strOutput
End Function