我正在研究跟踪呼叫中心电话联系人的MySQL数据库。电话代理使用Access应用程序输入呼叫信息,我将根据该信息生成基于Access或Excel VBA的报告。
每个联系人都保存在联系人表格中,其中包含有关联系人的信息,以及“ContactDateTimeInitiate”和“ContactDateTimeComplete”日期字段。记录中有调用类型的字段,我需要根据相当多的不同视图来提取信息。例如,对于单个类别,对于部门,月份,当天等,
我的问题是,如何生成(contactdatetimecomplete-contactdatetimeinitiate)的平均值?我使用一些使用多个记录集的低效循环来完成它,但我确信有一种更简单的方法可以做到这一点。
这将返回数百个数字 - 它应该接近5或10分钟:
rst.Open“选择avg(timediff(contactdatetimecomplete,contactdatetimeinitiate))作为expr1来自联系人”,cnn,adOpenStatic,adLockBatchOptimistic
我正好连接到数据库,问题出在SQL语法中。我还没有找到任何其他东西。有人能帮忙吗?
答案 0 :(得分:4)
试试这个:
SELECT AVG(TIMESTAMPDIFF(SECOND,
contactdatetimeinitiate,
contactdatetimecomplete)
) AS average
这应该为您提供平均接触持续时间(以秒为单位)。
如果您真的担心小数秒的时间间隔,可以尝试使用MICROSECOND
代替SECOND
。在这种情况下,您需要
SELECT AVG( 0.000001 * TIMESTAMPDIFF(MICROSECOND,
contactdatetimeinitiate,
contactdatetimecomplete)
) AS average
这个答案对MySQL有效。