2012-08-04 3 views
0

트랜잭션의 경과 시간을 가져 오려고합니다. 그 다음 파일로 추출해야합니다. 내가 좋아하는 것처럼 내가 작동하지 않습니다 더비에 대한 몇 가지 SQL 온라인을 발견 :더 타임스에서 두 날짜 사이의 timestampdiff

ij> create table atab1(ts timestamp, i int, ts1 timestamp); 
ij> insert into atab1 values(CURRENT_TIMESTAMP, 1, CURRENT_TIMESTAMP); 
1 row inserted/updated/deleted 
ij> insert into atab1 values(CURRENT_TIMESTAMP, 2, CURRENT_TIMESTAMP); 
1 row inserted/updated/deleted 
ij> select {fn TIMESTAMPDIFF(SQL_TSI_SECOND, ts1,ts)} as TS_DIFF from atab1; 
TS_DIFF 
----------- 
0 
0 

atab1 테이블의 내용은 다음과 같습니다

TS       |I   |TS1 
----------------------------------------------------------------------- 
2012-08-05 00:20:16.675  |1   |2012-08-05 00:20:16.675 
2012-08-05 00:20:29.081  |2   |2012-08-05 00:20:29.081 

문 :

select {fn TIMESTAMPDIFF(SQL_TSI_SECOND, ts1,ts)} as TS_DIFF from atab1; 

ts1과 ts의 값이 같을 때 항상 0을줍니다.

어떻게해야합니까? t 문은 ts와 ts1의 값의 차이를 보여줄 것입니까?

답변

0

두 개의 다른 행이 있어야하는 것처럼 보입니다. 하나는 시작 행이고 하나는 끝 행입니다. 각 행에는 트랜잭션 ID와 타임 스탬프가 있어야하며 시작 행임을 나타내는 코드가 있어야하고 다른 행에는 종료 행임을 나타내는 코드가 있어야합니다.

그런 다음 트랜잭션 ID로 테이블을 자체 결합하여이 두 행을 선택한 다음 종료 시간에서 시작 시간을 뺀 시간을 구할 수 있습니다.

관련 문제