2012-08-04 77 views
0

我正在尝试获取事务的已用时间。我需要将它解压缩到一个文件中。 我发现德比一些SQL在线不行,因为我想它:derby中两个日期之间的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; 

将始终为0,因为ts1和ts的值相同

我应该如何调整t声明是否会显示ts和ts1的值之间的差异?

回答

0

看起来你应该有两个不同的行:一个是开始行,一个是结束行。每行应该有一个事务ID和一个时间戳,一个应该有一个代码表明它是开始行,而另一个应该有一个代码表明它是最后一行。

然后,您可以通过在其事务ID上自行加入表来选择这两行,然后您可以从结束时间减去开始时间以获取流逝的时间。

相关问题