如何显示MS Access中Startdate_time和Enddate_time之间的小时数和分钟数?一辆豪华轿车公司的运行可能会在凌晨时分的第二天结束并开始前一段时间。我是否在表级使用两个单独的文件,如[StartDate] [StartTime]?我迷路了;(
答案 0 :(得分:1)
Access VBA有一个名为DateDiff
的内置函数:
DateDiff("n", StartDateTime, EndDateTime)
会显示两个Date
值之间的分钟差异
(其中包含日期和时间,正如Burkhard在his answer中已经说过的那样)
您可以直接在查询中致电DateDiff
,以便在几分钟内获得差异
或者,如果你想显示像" 1:15小时"这样的东西,你可以把它包装成这样的函数:
Public Function DateDiffHours(StartDateTime As Date, EndDatetime As Date) As String
Dim Minutes As Integer
Minutes = DateDiff("n", StartDateTime, EndDatetime)
DateDiffHours = Fix(Minutes / 60) & ":" & Right("00" & Minutes Mod 60, 2) & " hours"
End Function
答案 1 :(得分:1)
使用直接计算可以做得更简单:
HoursMinutes = Format(1 + Enddate_time - Startdate_time, "h:nn")
或者,如果您希望文本框的真实日期值:
Me!txtRunTime.Value = CDate(1 + Enddate_time - Startdate_time)
然后根据需要将格式应用于此,例如:h:nn
答案 2 :(得分:0)
日期字段还包含日期和时间。你需要一个StartDate和一个EndDate。
计算包含以下功能的vb模块的天数小时和分钟:
Public Function CountDays(EndDate, StartDate)
CountDays = Fix(EndDate - StartDate)
End Function
Public Function HourPart(EndDate, StartDate)
HourPart = Fix(((EndDate - StartDate) - CountDays(EndDate, StartDate)) * 24)
End Function
Function RemainHour(EndDate, StartDate)
RemainHour = ((EndDate - StartDate) - CountDays(EndDate, StartDate)) * 24 - HourPart(EndDate, StartDate)
End Function
Public Function MinPart(EndDate, StartDate)
MinPart = Round(RemainHour(EndDate, StartDate) * 60)
End Function
在查询中使用此功能。而不是字段名称输入e.E Duration_Days: countdays([EndDate];[StartDate])
或
Duration_hours: hourpart([EndDate];[StartDate])
或
Duration_minutes: Minpart([EndDate];[StartDate])
我希望这有点帮助,而不是太复杂。