MySQL의 unix_timestamp()
기능을 사용할 수 있습니다. 테이블에 두 이벤트에 대한 레코드가 두 개 있고, eventTime
이라는 열이 있다고 가정하면 다음과 같은 두 개의 쿼리를 통해 Epoch 이후의 각각의 초 수 인 두 값을 얻을 수 있습니다. 당신은 시간 차이를 전자로 후자를 빼고 얻을 수
select unix_timestamp(eventTime) ... where status='pending'
select unix_timestamp(eventTime) ... where status='success'
업데이트
질문을 다시 읽은 후, 나는 당신의 DB 설계는 인생에 대해 하나 개의 행이 있음을 추측 트랜잭션의주기 (pending
에서 success
까지). 이 경우 세 당사자 (상태를 으로 업데이트하는 에이전트, 상태를 success
으로 업데이트하는 에이전트 및 두 이벤트 간의 시간차를 찾아야하는 에이전트)가 모두 동일한 스레드 인 경우 두 이벤트 시간을 메모리에 유지하고 차이를 계산할 수 있습니다.
그러나 3 인이 2 ~ 3 개의 다른 스레드라고 생각합니다. 이 경우에는 (처음 이벤트 시간의) 지식을 한 스레드에서 다른 스레드로 전달할 수있는 메커니즘이 필요하다고 생각합니다. 이 작업은 lastUpdateTime
이라는 새 열을 추가하거나 시간 추적을 위해 새 테이블을 추가하여 수행 할 수 있습니다.
그런데 두 번째 방법을 사용하면 MySQL Trigger이 유용 할 수 있다고 생각합니다. 따라서 테이블이 업데이트 될 때마다 이벤트를 추적하는 데 사용되는 두 번째 테이블을 업데이트하는 또 다른 명령이 트리거됩니다 경과 시간의 시간). 이 방법을 사용하면 원본 테이블을 변경하지 않고 새 테이블을 추가 할 수 있습니다.
설명서에는 'time()'예제가 있습니다 (http://php.net/manual/en/function.time.php). 특정 문제가 있습니까? 따라서 레코드를 업데이트하는 데 걸리는 시간을 찾고 있습니까? – chris85
예 Chris. 레코드를 업데이트하는 데 걸리는 시간. 미리 감사드립니다! – Joeanne
DB로 할 수 있다고 생각하지 않습니다. PHP 측에서 업데이트 전과 후에 '마이크로 시간'을 저장할 수 있습니다. – chris85