MS Access中运行之间的小时数

时间:2015-09-06 12:00:04

标签: ms-access

如何显示MS Access中Startdate_time和Enddate_time之间的小时数和分钟数?一辆豪华轿车公司的运行可能会在凌晨时分的第二天结束并开始前一段时间。我是否在表级使用两个单独的文件,如[StartDate] [StartTime]?我迷路了;(

3 个答案:

答案 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])

我希望这有点帮助,而不是太复杂。