1

我正在开发一个跟踪呼叫中心电话联系人的 MySQL 数据库。电话代理使用 Access 应用程序输入呼叫信息,我根据该信息在 Access 或 Excel VBA 中生成报告。

每个联系人都保存在联系人表中,其中包含有关联系人的信息以及“ContactDateTimeInitiate”和“ContactDateTimeComplete”日期字段。记录中有呼叫类型的字段,我需要根据很多不同的视图提取信息。例如,针对单个类别、针对部门、针对月、针对日等。

我的问题是,如何生成 (contactdatetimecomplete-contactdatetimeinitiate) 的平均值?我使用多个记录集使用一些低效的循环来完成它,但我确信有一种更简单的方法可以做到这一点。

这将返回数百个数字 - 它应该接近 5 或 10 分钟:

rst.Open "从联系人中选择 avg(timediff(contactdatetimecomplete,contactdatetimeinitiate)) 作为 expr1", cnn, adOpenStatic, adLockBatchOptimistic

我很好地连接到数据库,问题出在 SQL 语法中。我还没有找到其他任何东西。有人能帮忙吗?

4

1 回答 1

4

试试这个:

 SELECT AVG(TIMESTAMPDIFF(SECOND, 
                          contactdatetimeinitiate, 
                          contactdatetimecomplete)
           ) AS average

这应该为您提供以秒为单位的平均接触持续时间。

如果您真的担心小数秒时间间隔,您可以尝试使用MICROSECOND. SECOND在这种情况下,您需要

     SELECT AVG( 0.000001 * TIMESTAMPDIFF(MICROSECOND, 
                              contactdatetimeinitiate, 
                              contactdatetimecomplete)
               ) AS average

这个答案对 MySQL 有效。

于 2013-06-20T16:49:44.707 回答