我在Access 2013中有一张表,它将跟随每日上班时间。 在一天中,人们需要工作8小时。 以下是该表的屏幕截图:
列总数=时间直到 - 时间从而且没关系。
列丢失具有此= 8格式(24 * Int([总计])+小时([总计]);“0”)& “:”&格式([总]; “NN”)
问题在于缺少列。 如果在Total列中它表示一个人做了7个小时,那么在Missing列中需要1个小时(缺少1个小时才能完成8个小时的日常工作)
注意第二行和最后一行...由于某种原因,它无法正确计算...
当有30分钟......它没有计算正确...在最后一行,它应该是1:30缺失(一天完成8小时)
我该如何计算?
答案 0 :(得分:1)
日期/时间值实际上是双精度浮点数。这意味着你可以直接对它们进行数学运算。在查询结果中,计算值可能会显示为双精度浮点数...但您可以使用Format()
以所需的时间格式显示它们。
我在Access 2010中使用您的示例数据测试了此查询。它返回我认为您想要的结果。
SELECT
t.[Time From],
t.[Time Until],
Format((t.[Time Until] - t.[Time From]), 'h:nn') AS [Total],
Format(#08:00# - (t.[Time Until] - t.[Time From]), 'h:nn') AS [Missing]
FROM tblVolkan AS t;
对于 [Total] 大于8小时的任何情况,您可能更喜欢将 [Missing] 显示为负值。如果是这样,请替换此表达式......
IIf(#08:00# - (t.[Time Until] - t.[Time From]) < 0, '-', '')
& Format(#08:00# - (t.[Time Until] - t.[Time From]), 'h:nn') AS [Missing]