Ms access 在ms access查询中查找在上午8点到下午5点工作日内的运行时间
我正在使用这个功能Ms access 在ms access查询中查找在上午8点到下午5点工作日内的运行时间,ms-access,vba,Ms Access,Vba,我正在使用这个功能 Public Function ElapsedTime(Start As Date, Finish As Date) As String 'Calculates elapsed time between 2 date/times and 'parses it out into Hours-Minutes-Seconds in HH:MM:SS format Dim HoursLapsed, SecondsLeft, MinutesLapsed
Public Function ElapsedTime(Start As Date, Finish As Date) As String
'Calculates elapsed time between 2 date/times and
'parses it out into Hours-Minutes-Seconds in HH:MM:SS format
Dim HoursLapsed, SecondsLeft, MinutesLapsed, SecondsLapsed, TotalSeconds As Long
TotalSeconds = DateDiff("s", Start, Finish)
HoursLapsed = Int(TotalSeconds / 3600)
SecondsLeft = TotalSeconds Mod 3600
MinutesLapsed = Int(SecondsLeft / 60)
SecondsLapsed = SecondsLeft Mod 60
ElapsedTime = Format(HoursLapsed, "00") & ":" & Format(MinutesLapsed, "00") & ":" & Format(SecondsLapsed, "00")
End Function
这是我的问题
SELECT
ElapsedTime([Date_Faxed],[Date_Found]) AS Duration,
dbo_yard_request.Salesman,
dbo_yard_request.Make,
dbo_yard_request.Model,
dbo_yard_request.ID,
dbo_yard_request.Found2
FROM
dbo_yard_request
WHERE
(((dbo_yard_request.Found2)=True));
它运行良好,除了我需要在下午5点考虑一天的结束,在上午8点考虑新的一天的开始
比如说
传真日期=2015年1月22日下午4:45:22
发现日期=2015年1月23日上午8:55:13
经过的时间应该是1小时10分钟,而不是16小时您是否可以执行类似于
TotalDays*15
的操作,以获得每个时间段要减去的小时数?(我只是在想一个快速解决办法)如果两天相隔怎么办?或者是在周末?还是工作时间以外?