访问数据库中的时间列平均值

时间:2012-08-10 04:16:37

标签: vb.net ms-access-2010

我有一个访问数据库,一个表有时间列,显示从(endtime - starttime)开始的总时间我需要将该列平均(hh:mm)ss不需要。我需要将此平均值存储到另一个表中,然后才能在文本框中显示它。对于特定时间范围的条件格式和颜色。我需要在每日范围和月度范围内进行此操作,只是想知道实现这一目标的最佳方法是什么。每次表格添加记录时,每月和每日平均值都需要更新。

我对此的想法是将每日时间拉入数组,然后对数组求平均值,并将该平均值存储在另一个表中。然后使用每日平均表在文本框中显示,以及条件格式。然后对于月平均时间也是一样的。

1 个答案:

答案 0 :(得分:1)

从查询中获取此信息并不困难,时间只是数字的小数部分。

 SELECT Format(Avg(CDbl([Atime2])-CDbl([ATime1])),"hh:mm:ss") AS Diff
 FROM Table;

或者

 SELECT Sum(DateDiff("n",[ATime1],[ATime2])) AS SumMins,
        Count([ATime1]) AS CountRecs, 
        Avg(DateDiff("n",[ATime1],[ATime2])) AS AvgMins
 FROM Table;

此外,MS Access 2010具有数据宏和计算列,即使在Access之外也是如此。

最后,通常不建议您存储在每次编辑时变得无效的值,以便轻松计算该值。