2013-06-20 3 views
1

나는 콜센터 전화 연락처를 추적하는 MySQL 데이터베이스 작업을하고 있습니다. 전화 상담원은 Access 애플리케이션으로 통화 정보를 입력하고 액세스 또는 Excel VBA에서 해당 정보를 기반으로하는 보고서를 생성합니다.MySQL의 두 날짜 필드 사이의 평균 시간?

각 연락처는 연락처에 대한 정보와 'ContactDateTimeInitiate'및 'ContactDateTimeComplete'날짜 필드와 함께 연락처 테이블에 저장됩니다. 레코드 유형에는 호출 유형에 대한 필드가 있으며 상당히 다른보기를 기반으로 정보를 가져와야합니다. 예를 들어, 단일 카테고리, 부서, 월, 일 등

제 질문은 평균 (contactdatetimecomplete-contactdatetimeinitiate)을 어떻게 생성합니까? 여러 레코드 세트를 사용하는 일부 비효율적 인 루프를 사용하여이 작업을 수행했지만 더 쉽게이 작업을 수행 할 수 있습니다.

rst.Open "연락처에서 expr1을 같은 평균 (timediff (contactdatetimecomplete, contactdatetimeinitiate)를) 선택", CNN, adOpenStatic 있습니다 :

은 5 또는 10 분 가까이 있어야 hundreds-에 숫자를 반환 , adLockBatchOptimistic

DB에 연결 중입니다. 문제는 SQL 구문에 있습니다. 나는 밖에서 다른 것을 찾을 수 없었습니다. 누구든지 도울 수 있니?

답변

4

이 시도 :

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

이 초 당신에게 평균 접촉 시간을 제공해야합니다.

초 단위 시간 간격에 대해 정말로 걱정한다면 SECOND 대신 MICROSECOND을 사용해보세요. 이 경우 필요합니다

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

이 답변은 MySQL에 유효합니다.

+0

이전에 MySQL에서이 함수를 사용하지 않았지만 빠른 조회를 수행했습니다. 그의 실수는 TIMEDIFF (시간을 반환)와 TIMESTAMPDIFF (정수를 반환)를 사용하는 것으로 보입니다. +1 –

+0

완벽하고 즉각적으로 수정되었습니다. 둘 다 감사합니다! Timestampdiff는 초 단위로 값을 반환하고 DateAdd ("s", rst.Fields ("expr1"), testDate)를 사용하여 형식이 지정된 날짜를 생성합니다. 진심으로 감사드립니다. – Acantud

관련 문제