MySQL中两个日期字段之间的平均时间?

时间:2013-06-20 16:36:00

标签: mysql vba ms-access access-vba

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

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

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

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

rst.Open“选择avg(timediff(contactdatetimecomplete,contactdatetimeinitiate))作为expr1来自联系人”,cnn,adOpenStatic,adLockBatchOptimistic

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

1 个答案:

答案 0 :(得分:4)

试试这个:

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

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

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

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

这个答案对MySQL有效。